পাস্কেলের ত্রিভুজ (সাজান)


24

এখানকার বেশিরভাগ লোকই পাস্কেলের ত্রিভুজের সাথে পরিচিত। এটি ধারাবাহিক সারি দ্বারা গঠিত, যেখানে প্রতিটি উপাদান তার দুটি উপরের-বাম এবং উপরের-ডান প্রতিবেশীর যোগফল। এখানে প্রথম 5সারি রয়েছে (পাস্কেলের ত্রিভুজ উত্পন্ন করা থেকে নেওয়া ):

    1
   1 1
  1 2 1
 1 3 3 1
1 4 6 4 1
  . . .

এই সারিগুলি বাম দিকে সঙ্কুচিত করুন

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
. . .

তাদের আরোহী ক্রম অনুসারে বাছাই করুন

1
1 1
1 1 2
1 1 3 3
1 1 4 4 6
. . .

সারি দিয়ে এই ত্রিভুজটি পড়ুন

[1, 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 4, 6 ...]

একটি ইনপুট দেওয়া হয়েছে n, nএই সিরিজের তৃতীয় সংখ্যা আউটপুট করুন । এটি ওআইআইএস 107430

বিধি

  • আপনি 0- বা 1-ভিত্তিক সূচক বেছে নিতে পারেন। আপনার জমা দেওয়ার মধ্যে দয়া করে বলুন।
  • ইনপুট এবং আউটপুটটি আপনার ভাষার নেটিভ পূর্ণ সংখ্যার সাথে মানানসই।
  • ইনপুট এবং আউটপুট যে কোনও সুবিধাজনক পদ্ধতি দ্বারা দেওয়া যেতে পারে ।
  • হয় একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন গ্রহণযোগ্য। যদি কোনও ফাংশন হয় তবে আপনি আউটপুটটি মুদ্রণের পরিবর্তে ফিরিয়ে দিতে পারেন।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এটি তাই সাধারণ গল্ফিংয়ের সমস্ত নিয়ম প্রয়োগ হয় এবং সংক্ষিপ্ততম কোড (বাইটে) জয়ী হয়।

6
খুব সুন্দর শিরোনাম!
লুইস মেন্ডো 14

1
ওআইআইএস লিঙ্ক অনুসারে, দ্বিপদী সহগের পরিবর্তে এই ক্রমটি তৈরি করার জন্য কেবলমাত্র পরিবর্তনটি একটি পূর্ণসংখ্যা বিভাগ। এটি অবশ্যই "তুচ্ছ" এর আওতায় পড়ে।
পিটার টেলর

5
@ পিটারটেলর এটি আমার কাছে সুস্পষ্ট ডুপের মতো দেখাচ্ছে না। আরও অনেক সম্ভাব্য পন্থা রয়েছে যা আকর্ষণীয় গল্ফিংয়ের সুযোগগুলিতে নিয়ে যেতে পারে, বিশেষত এমন ভাষাগুলির জন্য যেগুলি দ্বি-দ্বিস্থ অন্তর্নির্মিত নয় for
আরনৌল্ড

4
@ পিটারটেলর আমি নিশ্চিত নই যে এটিও একটি সদৃশ is এখনও অবধি, দুটি চ্যালেঞ্জের মধ্যে এমএটিএল, জাভাস্ক্রিপ্ট, এবং পাস্কেল উত্তরগুলি বরং পৃথক। তবে, যেহেতু আমার ভোট একটি হাতুড়ি খোলা, আমি এখনও ভোট দিব না।
অ্যাডমবর্কবর্ক

4
সম্পূর্ণরূপে @ অ্যাডমবর্কবার্কের সাথে একমত। সুতরাং আমাকে পুনরায় ভোট হিসাবে গণনা করুন। এটি এখন 3 করে। পুনরায় খোলার জন্য কতটি ভোটের প্রয়োজন?
লুইস মেন্ডো

উত্তর:


9

জাভাস্ক্রিপ্ট (ES6), 79 বাইট

0-ইন্ডেক্স।

f=(n,a=[L=1])=>a[n]||f(n-L,[...a.map((v,i)=>k=(x=v)+~~a[i-1-i%2]),L++&1?k:2*x])

ডেমো

কিভাবে?

f = (                       // f = recursive function taking:
  n,                        //   n = target index
  a = [L = 1]               //   a[] = current row, L = length of current row
) =>                        //
  a[n] ||                   // if a[n] exists, stop recursion and return it
  f(                        // otherwise, do a recursive call to f() with:
    n - L,                  //   n minus the length of the current row
    [                       //   an array consisting of:
      ...a.map((v, i) =>    //     replace each entry v at position i in a[] with:
        k =                 //       a new entry k defined as:
        (x = v) +           //       v +
        ~~a[i - 1 - i % 2]  //       either the last or penultimate entry
      ),                    //     end of map()
      L++ & 1 ?             //     increment L; if L was odd:
        k                   //       append the last updated entry
      :                     //     else:
        2 * x               //       append twice the last original entry
    ]                       //   end of array update
  )                         // end of recursive call

এই অ্যালগরিদম সরাসরি পাস্কালের ত্রিভুজের ক্রমযুক্ত সারি তৈরি করে। এটি পূর্ববর্তী সারির দৈর্ঘ্য অনুসারে n আপডেট করে যতক্ষণ না একটি [এন] উপস্থিত থাকে। উদাহরণস্বরূপ, n = 19 এর জন্য 6 টি পুনরাবৃত্তি প্রয়োজন :

 L | n  | a[]
---+----+------------------------
 1 | 19 | [ 1 ]
 2 | 18 | [ 1, 1 ]
 3 | 16 | [ 1, 1, 2 ]
 4 | 13 | [ 1, 1, 3, 3 ]
 5 |  9 | [ 1, 1, 4, 4, 6 ]
 6 |  4 | [ 1, 1, 5, 5, 10, 10 ]
                        ^^

চমৎকার কাজ. আমি ঠিক কীভাবে এটি কাজ করে তা বুঝতে পারছি কিনা তা নিশ্চিত নই। আমার চেষ্টাটি আপনার চেয়ে অনেক দীর্ঘ হতে পারে to
kamoroso94

@ kamoroso94 আমি একটি ব্যাখ্যা যুক্ত করেছি।
আরনাউল্ড

আমি এটা ভালোবাসি! এটি কী করছে তা নির্ধারণ করে সত্যই উপভোগ করেছেন।
শেগি

6

অক্টাভা , 46 বাইট

@(n)(M=sort(spdiags(flip(pascal(n)))))(~~M)(n)

1-ভিত্তিক।

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

n=4উদাহরণ হিসাবে বিবেচনা করুন ।

pascal(n) একটি পাস্কাল ম্যাট্রিক্স দেয়:

 1     1     1     1
 1     2     3     4
 1     3     6    10
 1     4    10    20

প্যাস্কাল ত্রিভুজের সারিগুলি এই ম্যাট্রিক্সের অ্যান্টিডিজোনাল। সুতরাং এটি উল্লম্বভাবে ব্যবহার করে উল্টানো হয়flip(···)

 1     4    10    20
 1     3     6    10
 1     2     3     4
 1     1     1     1

যা এন্টিডিজোনালগুলিকে কর্ণগুলিতে রূপান্তর করে।

spdiags(···) নীচে বাম থেকে শুরু করে (ননজারো) ডায়াগোনালগুলি বের করে এবং এগুলি শূন্য প্যাডযুক্ত কলাম হিসাবে সাজায়:

 1     1     1     1     0     0     0
 0     1     2     3     4     0     0
 0     0     1     3     6    10     0
 0     0     0     1     4    10    20

M=sort(···)এই ম্যাট্রিক্সের প্রতিটি কলামকে সাজান এবং ফলাফলটি পরিবর্তনশীলকে নির্ধারণ করুন M:

 0     0     0     1     0     0     0
 0     0     1     1     4     0     0
 0     1     1     3     4    10     0
 1     1     2     3     6    10    20

লজিকাল ইনডেক্সিং (···)(~~M)এখন এই ম্যাট্রিক্সের ননজারোগুলি কলাম-বড় ক্রমে (নীচে, তারপরে ওপারে) নিষ্কাশনের জন্য ব্যবহৃত হয়। ফলাফলটি একটি কলাম ভেক্টর:

 1
 1
 1
 1
···
10
10
20

অবশেষে, nএই ভেক্টরের চতুর্থ প্রবেশটি ব্যবহার করে উত্তোলন করা হয় (···)(n), যা এই ক্ষেত্রে দেয় 1


5

পাইথন 2 , 86 78 72 বাইট

-8 বাইট রড ধন্যবাদ

g=lambda n,r=[1]:r[n:]and r[n/2]or g(n-len(r),map(sum,zip([0]+r,r+[0])))

এটি অনলাইন চেষ্টা করুন!

Ungolfed

def g(n, row=[1]):
  if n < len(row):
    return row[n/2]
  else:
    next_row = map(sum, zip([0] + row, row + [0]))
    return g(n - len(row), next_row)

এটি অনলাইন চেষ্টা করুন!

ফাংশনটি পুনরাবৃত্তভাবে পাস্কালের ত্রিভুজের সারি গণনা করে। যেমন বর্তমান সারির দেওয়া row, map(sum, zip([0] + row, row + [0]))
প্রতিটি কলের nবর্তমান সারি দৈর্ঘ্য দ্বারা হ্রাস করা হয়। যদি ফাংশনটি ডান সারিতে আসে তবে সারিটির nthসর্বনিম্ন সংখ্যাটি ফিরে আসতে হবে।
যেহেতু একটি সারির প্রথমার্ধটি আরোহী ক্রমে এবং প্রতিটি সারিটি প্রতিসম হয়, তাই সংখ্যাটি সূচক n/2(0-সূচকযুক্ত, পূর্ণসংখ্যা বিভাগ) হয়।


4

ওল্ফ্রাম ভাষা (গণিত) , 55 বাইট

সূচকটি 1-ভিত্তিক।

(##&@@@Sort/@Table[n~Binomial~k,{n,0,#},{k,0,n}])[[#]]&

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এটি সম্ভবত গল্ফযোগ্য, আমি খুব অভিজ্ঞ গণিত ব্যবহারকারী নই।

Table[n~Binomial~k,{n,0,#},{k,0,n}]

প্রত্যেকের জন্য এন ∈ [0, ইনপুট] ∩ ℤ , প্রতিটি সঙ্গে binomials সারণী উৎপন্ন ট ∈ [0, এন] ∩ ℤ

Sort/@

প্রতিটি বাছাই করুন। শর্টহ্যান্ড ব্যবহার করে Map[function,object]- function/@object

(##&@@@...)[[#]]

ফলাফলের তালিকাটি সমতল করুন এবং তালিকার ইনডাক্ট যার উপাদানটি পুনরুদ্ধার করুন।



3

আর , 58 বাইট

function(n)(m=apply(outer(0:n,0:n,choose),1,sort))[m>0][n]

এটি অনলাইন চেষ্টা করুন!

নির্ণয় n choose kপ্রতিটি n,kমধ্যে[0,1,...,n] একটি ম্যাট্রিক্স হিসাবে, বাছাই করে সারি আরোহী (*), এবং zeros সরিয়ে ফেলা হবে, তারপর নির্বাচন nতম উপাদান।

(*) এটি তাদের কলামগুলিতেও রূপান্তরিত করে তবে এটি আরও ভাল যেহেতু আর একটি ম্যাট্রিক্সকে ভেক্টর কলামওয়াইজের মতো সঞ্চয় করে রাখে, এটি অর্ডার সংরক্ষণের সময় আমাদের সরাসরি সূচীতে অনুমতি দেয়।


3

হাস্কেল , 143 132 125 123 বাইট

((p>>=s.h)!!)
p=[1]:map(\r->zipWith(+)(0:r)(r++[0]))p
h r=splitAt(div(length r)2)r
s(a,b)=reverse b!a
(h:t)!b=h:(b!t)
x!_=x

প্রথম লাইনটি একটি বিন্দু মুক্ত ফাংশন যা সূচক নেয় (0-ভিত্তিক) এবং অনুক্রমের যথাযথ সংখ্যাটি দেয়। এটি অনলাইন চেষ্টা করুন!

এটি আমার প্রথম হাস্কেল প্রোগ্রাম! আমি নিশ্চিত যে এটি আরও খাটো পেতে পারে। টিপস প্রশংসা করা হয়।

নিমিকে 2 বাইট সংরক্ষণ করা হয়েছে

Ungolfed

pascalRows = [1] : map (\row -> zipWith (+) (0:row) (row++[0])) pascalRows
halves row = splitAt (div (length row) 2) row
joinSorted (first, second) = interleave (reverse second) first
interleave [] _ = []
interleave longer shorter = (head longer) : (interleave shorter (tail longer))
f n = (concatMap (joinSorted.halves) pascalRows) !! n

আমার ধারণা, আপনার এখনও iফাংশন রয়েছে s, যার নাম পরিবর্তন করে দেওয়া হয়েছিল !। আপনি একটি পোতা ফাংশন ব্যবহার আপনি ড্রপ করতে পারেন ()প্রায় reverse b: s(a,b)=reverse b!a
নিমি

@ নিমি আহ, ধন্যবাদ - আমি টিআইওতে এটি পরিবর্তন করেছি তবে এখানে কোডের একটি জায়গা মিস করেছি। এবং প্রথম বন্ধনী টিপ জন্য ধন্যবাদ।
DLosc

3

জাভাস্ক্রিপ্ট, 57 বাইট

f=(i,r=1)=>i<r?i>1?f(i-2,--r)+f(i<r?i:r-1,r):1:f(i-r,r+1)

0-ইন্ডেক্স।

এটি কীভাবে আসে:

পদক্ষেপ 0:

c=(i,r)=>i?r&&c(i-1,r-1)+c(i,r-1):1
f=(i,r=1)=>i<r?c(i>>1,r-1):f(i-r,r+1)

এই কোডটি বোঝা সহজ:

  • ক্রিয়া c সমন্বয় ব্যবহারের সূত্র গণনা করুন: সি (এন, কে) = সি (এন -1, কে) + সি (এন -1, কে -1); বা 1 যদি কে == 0 বা কে == এন হয়
  • ফাংশনটি fসারিটিতে সারি নম্বর এবং সূচকগুলি খুঁজে বের করার চেষ্টা করুন এবং তারপরে ফলাফল পাওয়ার জন্য ফাংশন সি কল করুন।

ধাপ 1:

c=(i,r)=>i>1?--r&&c(i-2,r)+c(i,r):1
f=(i,r=1)=>i<r?c(i,r):f(i-r,r+1)

এই পদক্ষেপ, আমরা ফাংশনের কল সংশোধন করার চেষ্টা cকরতে c(i,r)এর প্যারামিটার হিসাবে একই যেমন তোলে যা f

ধাপ ২:

c=(i,r)=>i>1?--r&&c(i-2,r)+c(i<r?i:r-1,r):1
f=(i,r=1)=>i<r?c(i,r):f(i-r,r+1)

আমরা i<rফাংশন fবা ফাংশন ব্যবহার করে কিনা তা পরীক্ষা করি c। এজন্য আমরা i<rফাংশন পুনরাবৃত্তির সময় কস্তুরী রাখি c

ধাপ 3:

f=(i,r=1)=>i<r?i>1?--r&&f(i-2,r)+f(i<r?i:r-1,r):1:f(i-r,r+1)

এই পদক্ষেপে, আমরা এই দুটি ফাংশনকে একটিতে মার্জ করি।

আরও কিছু গল্ফ পরে, আমরা শেষ পর্যন্ত উপরে বর্ণিত উত্তর পেয়েছি।


2

জেলি , 13 বাইট

0rcþ`ZṢ€Ẏḟ0⁸ị

এটি অনলাইন চেষ্টা করুন!

ইউরিলের ডায়ালগ অ্যালগরিদম ব্যবহার করে।

1-ইন্ডেক্স।

ব্যাখ্যা:

0rcþ`ZṢ€Ẏḟ0⁸ị
0r            Return inclusive range from 0 to n
    `         Call this dyad with this argument on both sides
   þ           Outer product with this dyad
  c             Binomial coefficient
     Z        Zip
       €      Call this link on each element
      Ṣ        Sort
        Ẏ     Concatenate elements
         ḟ0   Remove 0s
           ⁸ị Take the nth element

আপনি একটি ব্যাখ্যা যোগ করতে পারেন? আমি þএখানে কি করছে তা বুঝতে পারি না ।
শেগি

1
@ শেগি এটি বাহ্যিক পণ্য, আমি একটি ব্যাখ্যা যুক্ত করব।
এরিক আউটগল্ফার

2

জাভাস্ক্রিপ্ট (নোড.জেএস) , 65 বাইট

এমনকি একটি অ্যারে ব্যবহার করা হয় না। 0-ইন্ডেক্স।

f=(n,i=0,g=x=>x?x*g(x-1):1)=>n>i?f(n-++i,i):g(i)/g(c=n>>1)/g(i-c)

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

f=(n,i=0,                 )=>                                     // Main Function
         g=x=>x?x*g(x-1):1                                        // Helper (Factorial)
                             n>i?                                 // Is n > i?
                                 f(n-++i,i):                      // If so, call function
                                                                  // f(n-i-1, i+1) to skip
                                                                  // . i+1 terms
                                            g(i)/g(c=n>>1)/g(i-c) // If not, since sorting 
                                                                  // . the binomial coeffs
                                                                  // . equals to writing
                                                                  // . the first floor(i/2)
                                                                  // . coefficients twice
                                                                  // . each, so a shortcut

1

পাস্কাল , 373 বাইট

function t(n,k,r:integer):integer;begin if(n<k)then t:=r-1 else t:=t(n,k+r,r+1)end;
function s(n,k:integer):integer;begin if(k=0)then s:=n else s:=s(n+k,k-1)end;
function f(n,k:integer):integer;begin if((k<1)or(k>n))then f:=0 else if n=1 then f:=1 else f:=f(n-1,k-1)+f(n-1,k)end;
function g(n:integer):integer;var k:integer;begin k:=t(n,0,1);g:=f(k,(n-s(0,k-1)+2)div 2)end;

g ফাংশন হয়।

এটি অনলাইন চেষ্টা করুন!


n=1 thenহতে পারে n=1then
জোনাথন ফ্রেচ

ছদ্মবেশী, দেখে মনে হচ্ছে if(k=0)thenএটি হয়ে যেতে পারে if k=0then
শেগি

কিছু সংখ্যা যদি সর্বদা 0 এর চেয়ে বেশি wordহয় তবে এর পরিবর্তে আপনার ব্যবহার করা উচিত integer
tsh

1

জাভা 8, 187 বাইট

n->{int r=~-(int)Math.sqrt(8*n+1)/2+1,a[]=new int[r],k=r,x=0;for(;k-->0;a[k]=p(r,k))x+=k;java.util.Arrays.sort(a);return a[n-x];}int p(int r,int k){return--r<1|k<2|k>r?1:p(r,k-1)+p(r,k);}

ব্যাখ্যা:

এটি অনলাইনে চেষ্টা করুন।

n->{                   // Method with integer as both parameter and return-type
  int r=~-(int)Math.sqrt(8*n+1)/2+1,
                       //  Calculate the 1-indexed row based on the input
      a[]=new int[r],  //  Create an array with items equal to the current row
      k=r,             //  Index integer
      x=0;             //  Correction integer
  for(;k-->0;          //  Loop down to 0
    a[k]=p(r,k))       //   Fill the array with the Pascal's Triangle numbers of the row
    x+=k;              //   Create the correction integer
  java.util.Arrays.sort(a);
                       //  Sort the array
  return a[n-x];}      //  Return the `n-x`'th (0-indexed) item in this sorted array

// Separated recursive method to get the k'th value of the r'th row in the Pascal Triangle
int p(int r,int k){return--r<1|k<2|k>r?1:p(r,k-1)+p(r,k);}

1

এমএটিএল , 11 বাইট

:qt!XnSXzG)

1-ভিত্তিক।

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

4উদাহরণ হিসাবে ইনপুট বিবেচনা করুন । ;ম্যাট্রিক্স বা কলাম ভেক্টরগুলির জন্য সারি বিভাজক।

:     % Implicit input: n. Push the row vector [1 2 ... n]          
      S STACK: [1 2 3 4]
q     % Subtract 1, emlement-wise: gives [0 1 ... n-1]
      % STACK: [0 1 2 3]
t!    % Duplicate and transpose into a column vector
      % STACK: [0 1 2 3], [0; 1; 2; 3]
Xn    % Binomial coefficient, element-wise with broadcast. Gives an
      % n×n matrix where entry (i,j) is binomial(i,j), or 0 for i<j
      % STACK: [1 1 1 1;
                0 1 2 3;
                0 0 1 3;
                0 0 0 1]
S     % Sort each column
      % STACK: [0 0 0 1;
      %         0 0 1 1;
      %         0 1 1 3;
      %         1 1 2 3]
Xz    % Keep only nonzeros. Gives a column vector
      % STACK: [1; 1; 1; 1; 1; 2; 1; 1; 3; 3]
G)    % Get the n-th element. Implicitly display
      % STACK: 1

1

ব্যাচ, 128 বাইট

@set/as=2,t=r=m=i=1
:l
@if %1 geq %t% set/as+=r,t+=r+=1&goto l
@for /l %%i in (%s%,2,%1)do @set/ar-=1,m=m*r/i,i+=1
@echo %m%

0-ইন্ডেক্স।


আপনি কি একটি ব্যাখ্যা যোগ করতে পারেন, দয়া করে? আমি এখানে যুক্তিটি বেশ অনুসরণ করতে পারি না।
অ্যাডমবর্কবার্ক

@AdmBorkBork দ্য প্রথম তিন লাইন সারি নিরূপণ rএবং কলাম %1-(s-2)এর %1সিরিজের তম। চতুর্থ লাইনটি দ্বিপদী সহগ (n k) = n!/(n-k)!k!= n(n-1)...(n+1-k)/(1)(2)...k= গণনা করতে এটি ব্যবহার করে (n/1)((n-1)/2)...((n+1-k)/k)। আমার যখন প্রয়োজন তখন ম্যাথজ্যাক্স কোথায়?
নিল

1

এপিএল (ডায়ালগ ক্লাসিক) , 17 বাইট

⎕⊃∊i!⍨,\⌊.5×i←⍳99

এটি অনলাইন চেষ্টা করুন!

0 ভিত্তিক সূচক

মনে রাখবেন যে (49!98) > 2*53, দ্বি-দ্বিফল সহ 98 এর 49 এর চেয়ে বেশি 2 53 এর চেয়ে বেশি , সুতরাং সেই সময়ে ডায়ালগ ইতিমধ্যে আইইইই ভাসমান পয়েন্টের কারণে নির্ভুলতা হারাতে শুরু করেছে


দেখতে @Abigail এখানে এবং এখানে
ngn


1

জেলি , 11 বাইট

Ḷc€`Ṣ€Fḟ0ị@

এটি অনলাইন চেষ্টা করুন!

একটি মোনাডিক লিঙ্ক সূচকটি গ্রহণ করে এবং পূর্ণসংখ্যা ফেরত - 1-ভিত্তিক সূচক ব্যবহার করে।

কিভাবে?

প্যাসকেলের ত্রিভুজটি (জিরোস) এর ডানদিকে যা তখন ফেলে দেওয়া হয় ঠিক তেমনই লেখাটি ঠিক ঠিক চ্যালেঞ্জটি সম্পাদন করে ...

Ḷc€`Ṣ€Fḟ0ị@ - Link: integer, i    e.g. 1   or    9
Ḷ           - lowered range            [0]       [0,1,2,3,4,5,6,7,8]
   `        - repeat left as right arg [0]       [0,1,2,3,4,5,6,7,8]
 c€         - binomial choice for €ach [[1]]     [[1,0,0,0,0,0,0,0,0],[1,1,0,0,0,0,0,0,0],[1,2,1,0,0,0,0,0,0],[1,3,3,1,0,0,0,0,0],[1,4,6,4,1,0,0,0,0],[1,5,10,10,5,1,0,0,0],[1,6,15,20,15,6,1,0,0],[1,7,21,35,35,21,7,1,0],[1,8,28,56,70,56,28,8,1]]
    Ṣ€      - sort €ach                [[1]]     [[0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,1,1],[0,0,0,0,0,0,1,1,2],[0,0,0,0,0,1,1,3,3],[0,0,0,0,1,1,4,4,6],[0,0,0,1,1,5,5,10,10],[0,0,1,1,6,6,15,15,20],[0,1,1,7,7,21,21,35,35],[1,1,8,8,28,28,56,56,70]]
      F     - flatten                  [1]       [0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,2,0,0,0,0,0,1,1,3,3,0,0,0,0,1,1,4,4,6,0,0,0,1,1,5,5,10,10,0,0,1,1,6,6,15,15,20,0,1,1,7,7,21,21,35,35,1,1,8,8,28,28,56,56,70]
       ḟ0   - filter discard zeros     [1]       [1,1,1,1,1,2,1,1,3,3,1,1,4,4,6,1,1,5,5,111,1,6,6,15,15,21,1,7,7,21,21,35,35,1,1,8,8,28,28,56,56,70]
         ị@ - index into (sw@p args)    1         3 --------------^

1

লাল , 206 বাইট

f: func[n][t: copy[[1]]l: 0
while[l < n][a: copy last t insert append a 0 0 b: copy[]repeat i k:(length? a)- 1[append b a/(i) + a/(i + 1)]append t reduce[b]l: l + k]foreach p t[sort p]pick split form t{ }n]

1 ভিত্তিক

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

f: func [n] [
    t: copy [[1]]                       ; start with a list with one sublist [1]
    l: 0                                ; there are 1 items overall
    while [l < n] [                     ; while the number of items is less than the argument
        a: copy last t                  ; take the last sublist 
        insert append a 0 0             ; prepend and append 0 to it  
        b: copy []                      ; prepare a list for the sums  
        repeat i k: (length? a) - 1 [   ; loop throught the elements of the list
            append b a/(i) + a/(i + 1)] ; and find the sum of the adjacent items
        append t reduce [b]             ; append the resulting list to the total list
        l: l + k                        ; update the number of the items
    ]
    foreach p t [sort p]                ; sort each sublist
    v: pick split form t { } n          ; flatten the list and take the n-th element
]

1

পার্ল, 48 বাইট

+1জন্য অন্তর্ভুক্তp

perl -pe '$_-=$%until$_<++$%;$./=$_/--$%for 1..$_/2;$_=$.' <<< 19

বেস 0 ইনডেক্সিং ব্যবহার করে।


1

জে, 46 41 বাইট

f=:](([-2!]){/:~@(i.!<:)@])[:<.2&!@,:^:_1

0-ইন্ডেক্স

এটি অনলাইন চেষ্টা করুন!

নোট:

  • <.2&!@,:^:_1বিপরীতটি বৃত্তাকার করে পাস্কালের ত্রিভুজটির প্রাসঙ্গিক সারি সংখ্যা দেয় y choose 2
  • /:~@(i.!<:)@] সারিটি গণনা করে এবং এটি বাছাই করে।
  • [-2!] সারিকে সূচক দেয় gives

হ্যালো. সাইটে স্বাগতম! এটি একটি দুর্দান্ত প্রথম উত্তর :)
ডিজেএমসিএমহেম

1

জুলিয়া , 70 বাইট

f(x)=map(n->binomial(n-1,ceil(Int,x/2-(n^2-n)/4-1)),round(Int,√(x*2)))

1 ভিত্তিক

ব্যাখ্যা:

এটি প্রথমে সারি নম্বর, তারপরে কলাম নম্বর এবং তারপরে দ্বিপদীকে গণনা করবে


পিপিসিজিতে আপনাকে স্বাগতম!
মার্টিন এন্ডার

হ্যাঁ THX খুশি মুখ
জিমি চেন


0

পাইথ, 15 বাইট

@u+GSm.cHdhHhQY

0-ইন্ডেক্স

চেষ্টা করে দেখুন

ব্যাখ্যা

@u+GSm.cHdhHhQY
 u          hQY   Reduce on [0, ..., input], starting with the empty list...
  +G              ... append to the accumulator...
    Sm.cHdhH      ... the sorted binomial coefficients.
@              Q  Take the 0-indexed element.



0

প্রকৃতপক্ষে , 8 বাইট

মূলত জোনাথন অ্যালানের জেলি উত্তরের উপর ভিত্তি করে । 0-ইনডেক্সিং ব্যবহার করে।

;r♂╣♂SΣE

এটি অনলাইন চেষ্টা করুন!

Ungolfing

          Implicit input n.
;         Duplicate n.
 r        Lowered range. [0..n-1].
  ♂╣      Pascal's triangle row of every number.
    ♂S    Sort every row.
      Σ   Sum each row into one array.
       E  Get the n-th element of the array (0-indexed).
          Implicit return.

এটি একক সংখ্যা উত্পাদন করার কথা; nসিরিজে তম। এটি একটি অ্যারে উত্পাদন করে।
পুনরাবৃত্ত

উপস। সংশোধন করা হয়েছে। ধন্যবাদ @ রিচার্সিভ
শার্লক



0

সি (জিসিসি) , 140 123 বাইট

F(n){n=n?n*F(~-n):1;}f(n,j,k,c){for(c=j=0;j<n;j++)for(k=0;k<=j/2;k++)if(++c==n||j&1|k-j/2&&++c==n)return F(j)/F(k)/F(j-k);}

এটি অনলাইন চেষ্টা করুন!


আপনাকে ধন্যবাদ
জোনাথন ফ্রেচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.