ফিবানচি-orial


36

সংজ্ঞা

F(n)ধনাত্মক পূর্ণসংখ্যার উপর ফিবোনাচি সিকোয়েন্সটি এরূপ হিসাবে সংজ্ঞায়িত হয়:

1. F(1) = 1
2. F(2) = 1
3. F(n) = F(n-1) + F(n-2), where n is an integer and n > 2

ধনাত্মক পূর্ণসংখ্যার ফিবোনাচি-ওরিয়াল হ'ল এর পণ্য [F(1), F(2), ..., F(n)]

কার্য

ধনাত্মক পূর্ণসংখ্যা দেওয়া n, ফিবোনাচি-ওরিয়াল এর সন্ধান করুন n

চশমা

ফিবোনাচি-ওরিয়াল 100 অবশ্যই একটি যুক্তিসঙ্গত কম্পিউটারে 5 সেকেন্ডের মধ্যে গণনা করতে হবে।

Testcases

n   Fibonacci-orial of n
1   1
2   1
3   2
4   6
5   30
6   240
7   3120
8   65520
9   2227680
10  122522400
11  10904493600
12  1570247078400
13  365867569267200
14  137932073613734400
15  84138564904377984000
16  83044763560621070208000
17  132622487406311849122176000
18  342696507457909818131702784000
19  1432814097681520949608649339904000
20  9692987370815489224102512784450560000
100 3371601853146468125386964065447576689828006172937411310662486977801540671138589868616500834190029067583665182291701553172011082574587431382310099030394306877775647395167143332483560925112960024644459715300507481235056111434293619038347456390454209587101225261757371666449068625033999573552165524529725467628060170886602001077137613803027158648329335507728698605769992818756765633305318529965186184043999696650407246193257877568825245646129366994079739720698147440310773871269639752334356493678913424390564535389212240038895626811627949132978086070255082668392290037141141291484839596694182152062726390364094447642643912371532491388089634845995941928089653751672688740718152064107169357399466473375804972260594768969952507346694189050233823596316467570584434128052398891223730335019092974935617029638919358286124350711360361279157416837428904150054292406756317837582840596331363581207781793070936765786629772999832857257349696094416616259974304208756997835360702840912518532683324936435856348020736000000000000000000000000

তথ্যসূত্র

  • বাধ্যতামূলক OEIS A003266
  • OEIS A000045 - ফিবোনাচি ক্রম


1
@ লুইস মেন্ডো ফাইবোনাকির যোগফল ... আপনি এটি অনুমান করেছেন, ফিবোনাচি। ভাল, বিয়োগ এক।
ফাঁস নুন

2
@ লেকইনুন বর্তমানে জাভাস্ক্রিপ্টের উত্তরটি কেবল 15 টি পর্যন্ত পরীক্ষার কেসগুলি সম্পূর্ণ করে কারণ জাভাস্ক্রিপ্ট 2 ^ 53 - 1. এর বাইরে সংখ্যার সঠিকভাবে তুলনা করতে (বা হেরফের করতে পারে না) এটি সম্ভবত এখানে প্রচুর সাবমিশনের জন্য সম্ভবত একই রকম, কারণ বেশিরভাগ ভাষা তা করে না সমর্থন সংখ্যাটি বড়
মেয়রমন্টি

1
"যুক্তিসঙ্গত কম্পিউটার" বলতে কী বোঝ?
এরিক দ্য আউটগল্ফার

2
-1 কারণ এটি মনে হয় বেশ কয়েকটি চ্যালেঞ্জকে একসাথে মোকাবেলা করা হয়েছে (পরিসীমা, প্রতিটিের ফাইবোনাকি, কোনও বিশেষ আকর্ষণীয় শর্টকাট না দিয়ে)।
ফলসকে এলোং করা

উত্তর:


63

ম্যাথমেটিকা, 10 বাইট

Fibonorial

আর একটি ম্যাথমেটিকা ​​বিল্ট-ইন বিল্ট-ইন ছাড়াই গল্ফিংয়ের ভাষায় মারধর করেছে।


49
আমি… ডাব্লু-হোয়াট… কেন, ম্যাথমেটিকা ​​?!
লিন

3
ভুলে গেছেন যে ফাংশন এমনকি অস্তিত্ব!
LegionMammal978

3
@ লিন বিধি 35 : যদি এটি বিদ্যমান থাকে তবে এটির একটি গাণিতিক ফাংশন রয়েছে;)
বিটা ডেকে

9
@ বেটাডেহে আমি ভেবেছিলাম যে আমরা এটি প্রতিষ্ঠা করেছি যে এটি 110 এর বিধি
মার্টিন ইন্ডার

1
না, 110 রুল খুব আলাদা কিছু। যদিও আমি নিশ্চিত যে ম্যাথামেটিকারও একটি বিল্ট-ইন রয়েছে।
অ্যাডমবর্কবর্ক

27

জেলি , 6 বাইট

+С1ḊP

স্থানীয়ভাবে 500 এমএসে ইনপুট 100 সমাপ্ত। এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

+С1ḊP  Niladic link. No input.
        Since the link doesn't start with a nilad, the argument 0 is used.

   1    Yield 1.
+       Add the left and right argument.
 С     Read a number n from STDIN.
        Repeatedly call the dyadic link +, updating the right argument with
        the value of the left one, and the left one with the return value.
        Collect all values of the left argument into an array.
    Ḋ   Dequeue; discard the first Fibonacci number (0).
     P  Product; multiply the remaining ones.

সুতরাং +¡1একটি নবনির্মিত ফাইবোনাকিতে অন্তর্নির্মিত এবং +С1প্রথম এন ফিবোনাচি সংখ্যাগুলি কী?

পছন্দ করুন
ডেনিস

আমি ভেবেছিলাম সেখানে কোনও বিল্ট-ইন ফিবোনাচি ফাংশন আছে?
মিল্কিওয়ে 90

21

আসলে , 4 বাইট

ইনপুট 100টি 0.2 সেকেন্ডের মধ্যে চালায়। কোড:

R♂Fπ

ব্যাখ্যা:

R     # Get the range [1, ..., input].
 ♂F   # Map over the array with the fibonacci command.
   π  # Take the product.

সিপি -৩77 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!


1
কাজের জন্য এটি সঠিক হাতিয়ার :) ফাইওনাচি ফাংশনের কিছু উন্নতির জন্য ধন্যবাদ যা লিকি নুন কিছুক্ষণ আগে করেছে, 100 টি টেস্ট কেস টিআইও-তে 0.1 সেকেন্ডে চলে
মেগো

16

ব্রেইনফাক, 1198 1067 817 770 741 657 611 603

,[>++++++[-<-------->]<<[->++++++++++<]>>,]>+>+>>+>+<<<<<<[->>>[[-]
<[->+<]>>[-<+<+>>]<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->
[-]>>>>>>+>+<<<<<<<<[->+<]]]]]]]]]]]+>>>>>>>>]<<<<<<<<[->[-<+<<+>>>
]<[->+<]>>>[<<<<<[->>>>>>>>+<<<<<<<<]>>>>>>>>>>>>>]<<<<<<<<[->>>[-<
<<<<<<<+>>>>[->+>>+<<<]>[-<+>]>>>]<<[->>>>>>>+>+<<<<<<<<]<+<<<<<<<<
]>>>[-]>>>>>[[-]>[->+<]>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<
+>[->>>>>>+>+<<<<<<<<[-]]]]]]]]]]>]<<[<]+>>>>>>>>]<<<<<<<<[<<<<<<<<
]>>>>>[>>>>>>>>]+<<<<<<<<]>>>>>>>>>>>[<[-]>>[-<<+>>]>>>>>>>]<<<<<<<
<[<<<<<<<<]>>]>>>>>>[>>>>>>>>]<<<<<<<<[+++++[-<++++++++>]<.<<<<<<<]

সঙ্কুচিত, মন্তব্য সহ:

# parse input (max 255)
,[>++++++[-<-------->]<<[->++++++++++<]>>,]
>+>+>>+>+<<<<<<
[->>>
  # compute next fibonacci number
  [[-]<
    [->+<]>>
    [-<+<+>>]<
    # perform carries
    [->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<
      [->[-]>>>>>>+>+<<<<<<<<[->+<]]
    ]]]]]]]]]+>>>>>>>>
  ]<<<<<<<<
  # multiplication
  [->
    # extract next digit of F_n (most significant first)
    [-<+<<+>>>]<
    [->+<]>>>
    # move back to the end
    [<<<<<
      [->>>>>>>>+<<<<<<<<]>>>>>>>>>>>>>
    ]<<<<<<<<
    # digit wise multiplication (shifting current digit)
    [->>>
      [-<<<<<<<<+>>>>
        [->+>>+<<<]>
        [-<+>]>>>
      ]<<
      # shift previous total over one gap (in effect multiplying by 10)
      [->>>>>>>+>+<<<<<<<<]<+<<<<<<<<
    ]>>>[-]>>>>>
    # add product to total
    [[-]>
      [->+<]>
      # perform carries
      [-<+>
        [-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>
          [->>>>>>+>+<<<<<<<<[-]]
        ]]]]]]]]>
      ]<<[<]+>>>>>>>>
    ]<<<<<<<<
    [<<<<<<<<]>>>>>
    [>>>>>>>>]+<<<<<<<<
  ]>>>>>>>>>>>
  # overwrite previous product
  [<[-]>>
    [-<<+>>]>>>>>>>
  ]<<<<<<<<
  [<<<<<<<<]>>
]>>>>>>
# output product
[>>>>>>>>]<<<<<<<<
[+++++
  [-<++++++++>]<.<<<<<<<
]

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

রানটাইম N = 100 এর অনলাইন দোভাষী দিয়ে (স্থানীয়ভাবে আমার নিজস্ব অনুবাদক ব্যবহার করে প্রায় 0.2s) 1 সেকেন্ডের কম। সর্বাধিক ইনপুট 255, তবে pre 54000 কোষ সমর্থন করার জন্য দোভাষীর প্রয়োজন হবে (অনলাইন ইন্টারপ্রেটারটি 64 কে-র মোড়ানো মনে হয়)।


লগ পরিবর্তন করুন

এর মাধ্যমে গুণনের জন্য বর্তমান অঙ্কের আরও ভাল উত্তোলনের সাথে প্রায় 130 বাইট সংরক্ষণ করা হয়েছে এবং একক পাসে যুক্ত এবং বহন করে মার্জ করে। এটিও কিছুটা দ্রুত বলে মনে হচ্ছে।

আরও 250 বাইট সংরক্ষণ করা হয়েছে। আমি আমার গুণের স্ক্র্যাচ প্যাডকে দুটি কোষ দ্বারা হ্রাস করতে সক্ষম হয়েছি, যা অঙ্কের মধ্যে এতদূর স্থানান্তর না করে কেবল সর্বত্রই বাইট সংরক্ষণ করে। আমি অংকের মাধ্যমে সংখ্যাবৃদ্ধির পরেও ক্যারিটি বাদ দিয়েছিলাম এবং চলমান মোটে যোগ করার পরিবর্তে একটি সম্পূর্ণ বাহন সম্পাদন করি।

আরও প্রথমটি পুনরুত্থানের দিকে এগিয়ে না নিয়ে, এবং এটি যেখানে রয়েছে সেখান থেকে কাজ না করে আবার সংখ্যাটি আরও ভালভাবে উত্তোলনের মাধ্যমে আরও 50 টি কেটে গেছে digit কয়েকটি মাইক্রো অপ্টিমাইজেশন আরও প্রায় 10 ডলার বাইট জন্য অ্যাকাউন্ট।

30 আরও চলে গেছে ইতিমধ্যে 1 এর পরিবর্তে 0 দিয়ে নেওয়া অঙ্কগুলি চিহ্নিত করা তাদের সনাক্ত করা সহজ করে। গুণক লুপটি কিছুটা সহজ শেষ হয়েছে কিনা তাও এটি পরীক্ষা করে তোলে।

আমি আরও 80 বাইটের জন্য, অন্য একটি সেল দ্বারা স্ক্র্যাচ প্যাড হ্রাস করেছি। আমি পূর্ববর্তী পণ্য এবং বর্তমান চলমান মোটের জন্য চিহ্নিতকারীকে মার্জ করে এটি করেছি, যা ফাঁকগুলির মধ্যে স্থানান্তর হ্রাস করে এবং বুককিপিংকে কিছুটা সহজ করে তোলে।

অন্য একটি সেল মুছে ফেলা, ফিওনাচি ডিজিটের জন্য চিহ্নিতকারীকে শেষের অঙ্কটিও চিহ্নিত করতে পুনরায় ব্যবহার করে, অন্য 50 টি সংরক্ষণ করা হয়েছে। আমি অঙ্কের ভিত্তিক গুণিত লুপের সাথে পূর্বের মোটগুলি স্থানান্তর করতে লুপটি মার্জ করতে সক্ষম হয়েছি।

ইনপুট পার্সিংয়ে 8 বাইট সংরক্ষণ করা হয়েছে। উফ।


14

পাইথন, 45 বাইট

a=b=o=1
exec"o*=a;a,b=b,a+b;"*input()
print o

স্ট্যান্ডিন থেকে ইনপুট নেওয়া হয়। সঠিক সময়ের জন্য এন = 100 এর আউটপুট খুব দ্রুত শেষ হয়। n = 1000 প্রায় 1 সেকেন্ড সময় নেয়।

নমুনা ব্যবহার

$ echo 10 | python fib-orial.py
122522400

$ echo 100 | python fib-orial.py
3371601853146468125386964065447576689828006172937411310662486977801540671138589868616500834190029067583665182291701553172011082574587431382310099030394306877775647395167143332483560925112960024644459715300507481235056111434293619038347456390454209587101225261757371666449068625033999573552165524529725467628060170886602001077137613803027158648329335507728698605769992818756765633305318529965186184043999696650407246193257877568825245646129366994079739720698147440310773871269639752334356493678913424390564535389212240038895626811627949132978086070255082668392290037141141291484839596694182152062726390364094447642643912371532491388089634845995941928089653751672688740718152064107169357399466473375804972260594768969952507346694189050233823596316467570584434128052398891223730335019092974935617029638919358286124350711360361279157416837428904150054292406756317837582840596331363581207781793070936765786629772999832857257349696094416616259974304208756997835360702840912518532683324936435856348020736000000000000000000000000

13

হাস্কেল 41 29 বাইট

@ লাইকোনির মন্তব্যে 1 + 11 বাইট সংরক্ষণ করা হয়েছে।

f=1:scanl(+)1f
(scanl(*)1f!!)

1, fএবং !!পৃথক টোকেন হয়। প্রথম লাইনগুলি ফিবোনাচি সিক্যুয়েন্সকে সংজ্ঞায়িত করে, দ্বিতীয়টি একটি ফাংশন যা ফিবোনাচি-অরিয়ালগুলির ক্রমটি গণনা করে এবং প্রদত্ত এন এর জন্য n-th প্রদান করে। এটি প্রায় সঙ্গে সঙ্গে এন = 1000 এর জন্যও অঙ্কগুলি মুদ্রণ শুরু করে।


1
আপনি স্থান থেকে মুক্তি পেতে পারেন (scanl(*)1f!!)
লাইকনি

2
এবং এখানে একটি সংক্ষিপ্ত ফিবোনাচি জেনারেটর রয়েছে :f=1:scanl(+)1f
লাইকনি

@ লাইকনি এটি আশ্চর্যজনক, ধন্যবাদ!
খ্রিস্টান সিভারস

2
@ উইলনেস আমি মনে করি আমি কেবল অন্য ব্যবহারকারীদের দ্বারা ন্যায়সঙ্গত নই, তবে মেটা কোডেগল্ফ.স্ট্যাকেকেক্সচেঞ্জ / প্রশ্নগুলি / 2419/… এবং মেটা কোডেগল্ফ.স্ট্যাকেকেক্সচেঞ্জ / প্রশ্নগুলি / 9031 / … দ্বারা (তবে এখানে একটি রয়েছে) আরও অনেক কিছু এবং আমি সমস্ত পড়িনি)
খ্রিস্টান সিভারস

1
@ ফ্লোয়ার আপনি কি এমন 42+একটি ফাংশন হিসাবে গ্রহণ করবেন যা 42 টি যোগ করে? আপনার করা উচিত নয়, কারণ এটি কেবল একটি অসম্পূর্ণ প্রকাশ। তবে হাস্কেলতে আমরা বন্ধনী যুক্ত করতে পারি এবং বিভাগটি পেতে পারি (42+), ফাংশনটি লেখার একটি উপায় \n->42+n। এখানে এটি একই, কেবলমাত্র !!(সূচকের জন্য বাইনারি ইনফিক্স অপারেটর) পরিবর্তে +এবং আরও জটিল প্রথম অপারেন্ড।
ক্রিশ্চান সিভর্স

11

পাইথন 2, 39 বাইট

f=lambda n,a=1,b=1:n<1or a*f(n-1,b,a+b)

আইডিয়নে এটি পরীক্ষা করুন ।


আপনি নির্দিষ্ট করতে পারেন যে এটি Trueকিছু ক্ষেত্রে ফিরে আসে ।
লিকি নুন

5
এটি কেবল Trueইনপুট 0-এ ফিরে আসবে , যা ইতিবাচক নয়।
ডেনিস

6

জে, 17 16 বাইট

মাইল থেকে আরও ভাল সমাধান সহ 1 বাইট গল্ফ করা হয়।

[:*/+/@(!|.)\@i.

ধারণাটি মূল হিসাবে একই তবে ছোট ছোট ত্রিভুজগুলিতে পরিচালনা করার জন্য ম্যাট্রিক্স গঠনের পরিবর্তে আমরা ফ্লাইতে ত্রিভুজ তৈরি করি।


মূল

প্রথম পেতে এন ফাইবোনোমিয়ালগুলি :

*/\(#{.+//.)!/~i.

বাম থেকে বামে পড়া ... নির্দিষ্ট হওয়া পর্যন্ত
একটানা পূর্ণসংখ্যার i.অ্যারে তৈরি করুন (অ্যারে থেকে অ্যারের প্রতিটি জুড়ি থেকে গণনা করা /~দ্বিপদী সহগ ( !) ) এর টেবিল ( ) তৈরি করুন , এই টেবিলটি পাসকালের ত্রিভুজ শীর্ষে বিভক্ত প্রথম সারিটির সমাপ্তি এবং মূল তির্যকের অধীনে সমস্ত উপাদান 0 হয়, ধন্যবাদ প্রয়োগ করার জন্য !। আপনি যদি ( +/) সমস্ত ছোট তির্যক ( যোগফল করেন/. ) যোগ করেন তবে আপনি ফিবোনাচি নম্বর পেয়েছেন, তবে আপনাকে {.ফলাফলের অ্যারে থেকে #সারণীর নিজের দৈর্ঘ্য ( ) হিসাবে প্রথম উপাদানগুলি গ্রহণ করতে হবে। তারপরে পণ্যটি ( */) ধারাবাহিক উপসর্গগুলিতে প্রয়োগ করা হয়েছে (\ অ্যারের ফাইবোনোরিয়ালগুলির পছন্দসই অনুক্রমের ফলাফল।আপনি যদি চান তবে আপনি আরও দুটি বাইট ( ব্যবহার করে কেবলমাত্র শেষটি নিতে পারেন{:) তবে আমি ভেবেছিলাম যে এগুলির সমস্ত প্রদর্শন করা কোনও পাপ নয় :)
NB. the previous code block is not a J function

   {:*/\(#{.+//.)!/~i. 10
122522400

জে বড় সংখ্যার জন্য আপনি xশেষে ব্যবহার করুন:

   {:*/\(#{.+//.)!/~i. 100x
3371601853146468125386964065447576689828006172937411310662486977801540671138589868616500834190029067583665182291701553172011082574587431382310099030394306877775647395167143332483560925112960024644459715300507481235056111434293619038347456390454209587101225...

প্রোগ্রামটি 0.11 সেকেন্ডে চালিত হয়

   100 timex '{:*/\(#{.+//.)!/~i.100x'
0.112124

1
একটি বিকল্প যা একটি ফাংশন [:*/+/@(!|.)\@i.16 বাইট ব্যবহার করছে। এটা তোলে ফর্ম যে টেবিল বরাবর একই দ্বিপদ কোফিসিয়েন্টস আপনি ব্যবহার উৎপন্ন !/~ছাড়া এটা ফর্ম যে যে উপসর্গ গ্রহণ করে i.
মাইল 23

4

পাইথ, 13 বাইট

u*Gs=[sZhZ)Q1

প্রদর্শন

এটি একটি চালাক, নন-টাইপসেফ ট্রিক নিয়োগ করে। পাঁচটি অক্ষর ( u*G ... Q1) বলে যে আউটপুটটি অনেক সংখ্যার ইনপুটের পণ্য। কোডের বাকী সংখ্যাগুলি উত্পন্ন করে।

=[sZhZ)Zতালিকাতে পরিবর্তনশীল আপডেট করে [s(Z), h(Z)]। তারপরে sসেই তালিকাটির যোগফল, গুণনের জন্য।

Zপ্রাথমিকভাবে 0 s, ints এ, পরিচয় ফাংশন। hএর উপর, + 1ফাংশনটি হয়। সুতরাং প্রথম পুনরাবৃত্তির উপর, Zহয়ে যায় [0, 1]sতালিকাগুলিতে উপরে বর্ণিত সমষ্টি ফাংশন। hমাথা ফাংশন হয়। সুতরাং দ্বিতীয় পুনরাবৃত্তি হয় [1, 0]

এখানে একটি তালিকা:

Iter  Z          Sum
0     0          Not used
1     [0, 1]     1
2     [1, 0]     1
3     [1, 1]     2
4     [2, 1]     3
5     [3, 2]     5

ফলাফল দেওয়ার জন্য এই অঙ্কগুলি বহুগুণ হয়।


4

গণিত 25 24 বাইট

মার্টিন ইন্ডারকে ধন্যবাদ জানাই

1##&@@Fibonacci@Range@#&

1##&@@Fibonacci@Range@#&@100

সময়: 63 মাইক্রোসেকেন্ড।

{0.000063, 
3371601853146468125386964065447576689828006172937411310662486977801540
6711385898686165008341900290675836651822917015531720110825745874313823
1009903039430687777564739516714333248356092511296002464445971530050748
1235056111434293619038347456390454209587101225261757371666449068625033
9995735521655245297254676280601708866020010771376138030271586483293355
0772869860576999281875676563330531852996518618404399969665040724619325
7877568825245646129366994079739720698147440310773871269639752334356493
6789134243905645353892122400388956268116279491329780860702550826683922
9003714114129148483959669418215206272639036409444764264391237153249138
8089634845995941928089653751672688740718152064107169357399466473375804
9722605947689699525073466941890502338235963164675705844341280523988912
2373033501909297493561702963891935828612435071136036127915741683742890
4150054292406756317837582840596331363581207781793070936765786629772999
8328572573496960944166162599743042087569978353607028409125185326833249
36435856348020736000000000000000000000000}

পর্যায়ক্রমে, একই বাইট গণনা সহ: 1##&@@Fibonacci~Array~#&
গ্রেগ মার্টিন

4

জেলি, 8 বাইট

RḶUc$S€P

জেলি আমার প্রথম জমা। এটি @ ডেনিসের উত্তরের মতো সংক্ষিপ্ত নয় , তবে এটির ভিন্ন পদ্ধতিতে এর কেবল 2 বাইট বেশি।

স্থানীয়ভাবে, এটি n = 100 এর জন্য @ ডেনিসের সংস্করণের সাথে 380ms এর তুলনায় প্রায় 400ms প্রয়োজন ।

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

ব্যাখ্যা

RḶUc$S€P  Input: n
R         Generate the range [1, 2, ..., n]
          For each value x in that range
 Ḷ          Create another range [0, 1, ..., x-1]
  U         Reverse that list
   c        Compute the binomial coefficients between each pair of values
    $       Bind the last two links (Uc) as a monad
     S€   Sum each list of binomial coefficients
          This will give the first n Fibonacci numbers
       P  Take the product of those to compute the nth Fibonacci-orial

3

প্যারি / জিপি, 29 বাইট

f=n->prod(i=1,n,fibonacci(i))

বা বিকল্পভাবে:

f=n->prod(i=a=!b=0,n,b=a+a=b)

3

আর, 99 96 78 76 66 বাইট

এই উত্তরটি হ'ল বিনেটের ফর্মুলাটি পাশাপাশি prod(x)ফাংশনটিও ব্যবহার করে। যেহেতু আর এর কোনও বিল্ট-ইন Phiমান নেই, তাই আমি নিজেই এটি সংজ্ঞায়িত করেছি:

p=(1+sqrt(5))/2;x=1;for(n in 1:scan())x=x*(p^n-(-1/p)^n)/sqrt(5);x

5 সেকেন্ডের কম কাজ করে, কিন্তু আর দিতে থাকে Infসেই বিশাল সংখ্যার জন্য একটি উত্তর হিসাবে ...

অসমাপ্ত:

r=sqrt(5)
p=(1+r)/2 
x=1
for(n in 1:scan())        
    x=x*(p^n-(-1/p)^n)/r    
x

-২ বাইটস @ কায়সকে ধন্যবাদ!
ওহ, আমি কি এই সাইটটি ভালবাসি! -10 বাইটস @ ব্যবহারকারী5957401 ধন্যবাদ


sqrt(5)কোনও ভেরিয়েবলের সাথে সঞ্চয় করে কিছুটা সাশ্রয় করতে সক্ষম হতে পারে
সাইয়েস

যেহেতু আপনি কেবল Nএকবার ব্যবহার করেন তাই আপনি 1:Nকিছুটা ভিতরে স্ক্যান কল করতে পারেন । অর্থাত for(n in 1:scan())। আপনি নিজের লুপের জন্য ফাংশনের *পরিবর্তে কয়েকটি অক্ষর সংরক্ষণ করতে পারেন prod()। আপনার লুপের জন্য কেবল একটি লাইন, সুতরাং আপনার কোঁকড়া ধনুর্বন্ধনী প্রয়োজন হয় না।
ব্যবহারকারী5957401

বিনেটের সূত্রটি ব্যবহার করার জন্য দুর্দান্ত ধারণা। আপনার চেতনায় তবে কেবল 53 বাইট রয়েছেfunction(n,N=1:n,p=5^.5)prod(((1+p)^N-(1-p)^N)/2^N/p)
মাইকেল এম

3

আর, 82 , 53 , 49 বাইট (48 বাইট ডাব্লু / ভিন্ন ইনপুট শৈলী)

b=d=1;a=0;for(i in 1:scan()){d=d*b;b=a+b;a=b-a};d

যদি আমরা কেবল ইনপুট নম্বর দিয়ে কোডটি আগেই দেখতে পারি তবে আমরা 48 বাইট পাই

->n;b=d=1;a=0;for(i in 1:n){d=d*b;b=a+b;a=b-a};d

সম্পাদনা: নতুন কোড মূল নীচে:

a=function(n)ifelse(n<3,1,{v=c(1,1,3:n);for(i in 3:n)v[i]=v[i-1]+v[i-2];prod(v)})

a(100)যদিও ইনফ ব্যতীত অন্য কিছু ফেরত দেবে না । এবং এটি অ-নেতিবাচক পূর্ণসংখ্যার ব্যতীত অন্য কোনও কিছুর জন্য কাজ করবে না।

Ungolfed:

a=function(n){
   if(n<3) return(1)
   v=c(1,1,3:n)
   for(i in 3:n)
       v[i]=v[i-1]+v[i-2]
   prod(v)
}

3

জাভা, 165 বাইট

Golfed:

BigInteger f(int n){BigInteger[]a={BigInteger.ZERO,BigInteger.ONE,BigInteger.ONE};for(int i=0;i<n;){a[++i%2]=a[0].add(a[1]);a[2]=a[2].multiply(a[i%2]);}return a[2];}

এটি এখনও অন্য একটি ঘটনা যেখানে BigIntegerপ্রচুর সংখ্যার কারণে প্রয়োজনীয়। তবে আমি লেখাটি রাখতে পেরেছিBigInteger আকারটি নীচে রেখে, সর্বনিম্ন । আমি স্থিতিশীল আমদানির সাথেও তুলনা করেছি এবং এটি মোট দৈর্ঘ্যকে আরও দীর্ঘায়িত করেছে।

এই প্রোগ্রামটি অ্যারেতে তিনটি সংখ্যা ট্র্যাক করে কাজ করে। প্রথম দুটি হ'ল আগের দুটি ফিবোনাচি সংখ্যা। তৃতীয়টি হল সঞ্চিত মান। লুপটি পরবর্তী মান গণনা করে এবং পর্যায়ক্রমে (0, 1, 0, 1, ...) অ্যারে সূচকগুলিতে সঞ্চয় করে শুরু হয়। এটি ব্যয়বহুল (উত্স আকারের শর্তে) অ্যাসাইনমেন্ট ক্রিয়াকলাপের সাথে মানগুলি স্থানান্তরিত করার প্রয়োজন এড়িয়ে চলে। তারপরে সেই নতুন মানটি ধরুন এবং এটিকে সংযোজকের মধ্যে গুন করুন।

অস্থায়ী বস্তুগুলি এড়িয়ে এবং দু'জন অ্যাসাইনমেন্ট অপারেটরের কাছে লুপটি সীমাবদ্ধ রেখে আমি বেশ কয়েকটি বাইট বের করতে সক্ষম হয়েছি।

Ungolfed:

import java.math.BigInteger;

public class Fibonacci_orial {

  public static void main(String[] args) {
    // @formatter:off
    String[][] testData = new String[][] {
      { "1", "1" },
      { "2", "1" },
      { "3", "2" },
      { "4", "6" },
      { "5", "30" },
      { "6", "240" },
      { "7", "3120" },
      { "8", "65520" },
      { "9", "2227680" },
      { "10", "122522400" },
      { "11", "10904493600" },
      { "12", "1570247078400" },
      { "13", "365867569267200" },
      { "14", "137932073613734400" },
      { "15", "84138564904377984000" },
      { "16", "83044763560621070208000" },
      { "17", "132622487406311849122176000" },
      { "18", "342696507457909818131702784000" },
      { "19", "1432814097681520949608649339904000" },
      { "20", "9692987370815489224102512784450560000" },
      { "100", "3371601853146468125386964065447576689828006172937411310662486977801540671138589868616500834190029067583665182291701553172011082574587431382310099030394306877775647395167143332483560925112960024644459715300507481235056111434293619038347456390454209587101225261757371666449068625033999573552165524529725467628060170886602001077137613803027158648329335507728698605769992818756765633305318529965186184043999696650407246193257877568825245646129366994079739720698147440310773871269639752334356493678913424390564535389212240038895626811627949132978086070255082668392290037141141291484839596694182152062726390364094447642643912371532491388089634845995941928089653751672688740718152064107169357399466473375804972260594768969952507346694189050233823596316467570584434128052398891223730335019092974935617029638919358286124350711360361279157416837428904150054292406756317837582840596331363581207781793070936765786629772999832857257349696094416616259974304208756997835360702840912518532683324936435856348020736000000000000000000000000" }
    };
    // @formatter:on

    for (String[] data : testData) {
      System.out.println("Input: " + data[0]);
      System.out.println("Expected: " + data[1]);
      System.out.print("Actual:   ");
      System.out.println(new Fibonacci_orial().f(Integer.parseInt(data[0])));
      System.out.println();
    }
  }

  // Begin golf
  BigInteger f(int n) {
    BigInteger[] a = { BigInteger.ZERO, BigInteger.ONE, BigInteger.ONE };
    for (int i = 0; i < n;) {
      a[++i % 2] = a[0].add(a[1]);
      a[2] = a[2].multiply(a[i % 2]);
    }
    return a[2];
  }
  // End golf

}

প্রোগ্রাম আউটপুট:

Input: 1
Expected: 1
Actual:   1

Input: 2
Expected: 1
Actual:   1

Input: 3
Expected: 2
Actual:   2

Input: 4
Expected: 6
Actual:   6

Input: 5
Expected: 30
Actual:   30

Input: 6
Expected: 240
Actual:   240

Input: 7
Expected: 3120
Actual:   3120

Input: 8
Expected: 65520
Actual:   65520

Input: 9
Expected: 2227680
Actual:   2227680

Input: 10
Expected: 122522400
Actual:   122522400

Input: 11
Expected: 10904493600
Actual:   10904493600

Input: 12
Expected: 1570247078400
Actual:   1570247078400

Input: 13
Expected: 365867569267200
Actual:   365867569267200

Input: 14
Expected: 137932073613734400
Actual:   137932073613734400

Input: 15
Expected: 84138564904377984000
Actual:   84138564904377984000

Input: 16
Expected: 83044763560621070208000
Actual:   83044763560621070208000

Input: 17
Expected: 132622487406311849122176000
Actual:   132622487406311849122176000

Input: 18
Expected: 342696507457909818131702784000
Actual:   342696507457909818131702784000

Input: 19
Expected: 1432814097681520949608649339904000
Actual:   1432814097681520949608649339904000

Input: 20
Expected: 9692987370815489224102512784450560000
Actual:   9692987370815489224102512784450560000

Input: 100
Expected: 3371601853146468125386964065447576689828006172937411310662486977801540671138589868616500834190029067583665182291701553172011082574587431382310099030394306877775647395167143332483560925112960024644459715300507481235056111434293619038347456390454209587101225261757371666449068625033999573552165524529725467628060170886602001077137613803027158648329335507728698605769992818756765633305318529965186184043999696650407246193257877568825245646129366994079739720698147440310773871269639752334356493678913424390564535389212240038895626811627949132978086070255082668392290037141141291484839596694182152062726390364094447642643912371532491388089634845995941928089653751672688740718152064107169357399466473375804972260594768969952507346694189050233823596316467570584434128052398891223730335019092974935617029638919358286124350711360361279157416837428904150054292406756317837582840596331363581207781793070936765786629772999832857257349696094416616259974304208756997835360702840912518532683324936435856348020736000000000000000000000000
Actual:   3371601853146468125386964065447576689828006172937411310662486977801540671138589868616500834190029067583665182291701553172011082574587431382310099030394306877775647395167143332483560925112960024644459715300507481235056111434293619038347456390454209587101225261757371666449068625033999573552165524529725467628060170886602001077137613803027158648329335507728698605769992818756765633305318529965186184043999696650407246193257877568825245646129366994079739720698147440310773871269639752334356493678913424390564535389212240038895626811627949132978086070255082668392290037141141291484839596694182152062726390364094447642643912371532491388089634845995941928089653751672688740718152064107169357399466473375804972260594768969952507346694189050233823596316467570584434128052398891223730335019092974935617029638919358286124350711360361279157416837428904150054292406756317837582840596331363581207781793070936765786629772999832857257349696094416616259974304208756997835360702840912518532683324936435856348020736000000000000000000000000


2

রুবি, 39 বাইট

->n{f=i=b=1;n.times{f,i,b=i,f+i,b*f};b}

36: -> n {f = i = b = 1; n. টাইমস {বি * = f; i = f + f = i}; বি}
জিবি

2

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

পুনরাবৃত্তিমূলক বাস্তবায়ন (39 বাইট)

f=(n,a=p=i=b=1)=>++i<n?f(n,b,p*=b+=a):p

আসল বাস্তবায়ন (৫১ বাইট)

n=>{for(i=a=b=p=1;++i<n;){c=a;a=b;p*=b+=c}return p}

দ্রষ্টব্য: ১ ,,০০০ এর ফিবোনাচি-ওরিয়ালের জন্য গোলাকার ত্রুটিগুলি শুরু হয় কেবল ইনফিনিটি, যা <1 সেকেন্ড বলে মনে হয় তাতে চলে।


আমি n=>[...Array(n)].reduce(p=>(c=a,a=b,p*=b+=c),a=1,b=0)কেবলমাত্র একটি বিকল্প 53-বাইট সংস্করণ তৈরি করেছি তা আবিষ্কার করতে যে f=আপনি 2 বাইট সংরক্ষণের প্রয়োজন নেই এমনটি গণনা করেছেন ।
নীল

ন্যায্য বিন্দু. আমার যুক্তিটি ছিল তাই এটি কেবল কল করার চেয়ে কলযোগ্য এবং পুনরায় ব্যবহারযোগ্য।
পান্ডাকোডার

অবশ্যই, তবে যদি কেউ এটিকে পুনরায় ব্যবহার করতে চান তবে তাদের কাছে নামকরণের বিকল্পটি এখনও রয়েছে।
নিল

@ নীল ভাল এখন আমি গিয়ে আবার এটি প্রয়োগ করেছি এবং এখন এফ = বাধ্যতামূলক হয় অন্যথায় এটি বাস্তবায়ন করতে পারে না। : ডি
পান্ডাকোডার

আচ্ছা কমপক্ষে আপনি মূল প্রয়োগের জন্য বাইট গণনাটি ঠিক করেছেন।
নিল

2

ডিসি (জিএনইউ বা ওপেনবিএসডি গন্ধ) , 36 বাইট

ফাইল A003266-v2.dc:

0sA1sB1?[1-d0<LrlBdlA+sBdsA*r]dsLxrp

(কোনও পেছনের নিউলাইন নেই)

... এখন ফলাফলটি একটি নাম রেজিস্টার ব্যবহারের পরিবর্তে স্ট্যাকের উপর অনুষ্ঠিত হয়েছে ( Yসংস্করণ 1 এ রয়েছে)। rকমান্ড মূল উপলব্ধ নয় dc(দেখুন RosettaCode ডিসি পৃষ্ঠা )।

চালান:

$ time dc -f A003266-v2.dc <<< 100
337160185314646812538696406544757668982800617293741131066248697780154\
067113858986861650083419002906758366518229170155317201108257458743138\
231009903039430687777564739516714333248356092511296002464445971530050\
748123505611143429361903834745639045420958710122526175737166644906862\
503399957355216552452972546762806017088660200107713761380302715864832\
933550772869860576999281875676563330531852996518618404399969665040724\
619325787756882524564612936699407973972069814744031077387126963975233\
435649367891342439056453538921224003889562681162794913297808607025508\
266839229003714114129148483959669418215206272639036409444764264391237\
153249138808963484599594192808965375167268874071815206410716935739946\
647337580497226059476896995250734669418905023382359631646757058443412\
805239889122373033501909297493561702963891935828612435071136036127915\
741683742890415005429240675631783758284059633136358120778179307093676\
578662977299983285725734969609441661625997430420875699783536070284091\
2518532683324936435856348020736000000000000000000000000

real    0m0.005s
user    0m0.004s
sys     0m0.000s

ব্যাখ্যা করার চেষ্টা করছি:

tosএটিকে না সরিয়ে স্ট্যাকের শীর্ষের সামগ্রী।
nosনীচের উপাদান tos

0 sA # push(0) ; A=pop()
1 sB # push(1) ; B=pop()
1    # push(1)
     # this stack position will incrementally hold the product
?    # push( get user input and evaluate it )
[    # start string
 1-  # push(pop()-1)
 d   # push(tos)
 0   # push(0)
 <L  # if pop() < pop() then evaluate contents of register L
 r   # exchange tos and nos
     # now nos is the loop counter
     # and tos is the bucket for the product of the fibonacci numbers
 lB  # push(B)
 d   # push(tos)
 lA  # push(A)
 +   # push(pop()+pop())
     # now tos is A+B, nos still is B 
 sB  # B=pop()
     # completes B=A+B
 d   # push(tos)
 sA  # A=pop()
     # completes B=A
     # tos (duplicated new A from above) is the next fibonacci number
 *   # push(nos*tos)
     # tos now is the product of all fibonacci numbers calculated so far
 r   # exchange tos and nos
     # now tos is the loop counter, nos is the product bucket
]    # end string and push it
d    # push(tos)
sL   # L=pop()
x    # evaluate(pop())
r    # exchange tos and nos
     # nos now is the former loop counter
     # tos now is the complete product. \o/
p    # print(tos)
     # this does not pop() but who cares? :-P

ডিসি , 41 বাইট

... সরাসরি এগিয়ে, কোন কৌশল নয়:

ফাইল A003266-v1.dc:

0sA1sB1sY?[1-d0<LlBdlA+sBdsAlY*sY]dsLxlYp

(কোনও পেছনের নিউলাইন নেই)

চালান:

$ for i in $(seq 4) ; do dc -f A003266-v1.dc <<< $i ; done
1
1
2
6
$ time dc -f A003266-v1.dc <<< 100
337160185314646812538696406544757668982800617293741131066248697780154\
067113858986861650083419002906758366518229170155317201108257458743138\
231009903039430687777564739516714333248356092511296002464445971530050\
748123505611143429361903834745639045420958710122526175737166644906862\
503399957355216552452972546762806017088660200107713761380302715864832\
933550772869860576999281875676563330531852996518618404399969665040724\
619325787756882524564612936699407973972069814744031077387126963975233\
435649367891342439056453538921224003889562681162794913297808607025508\
266839229003714114129148483959669418215206272639036409444764264391237\
153249138808963484599594192808965375167268874071815206410716935739946\
647337580497226059476896995250734669418905023382359631646757058443412\
805239889122373033501909297493561702963891935828612435071136036127915\
741683742890415005429240675631783758284059633136358120778179307093676\
578662977299983285725734969609441661625997430420875699783536070284091\
2518532683324936435856348020736000000000000000000000000

real    0m0.006s
user    0m0.004s
sys     0m0.004s

1
! * দীর্ঘশ্বাস * ... লেখা dcকোড স্পষ্টভাবে এটি ব্যাখ্যা তুলনায় অনেক সহজ ...

1
হ্যাঁ, আমাদের সত্যই এক ধরণের উন্মাদ একাধিক-স্ট্যাক ভিজ্যুয়ালাইজেশন গ্যাজেট সহ একটি আইডিই প্রয়োজন ... এটি মিষ্টি হবে।
জো

1
নতুন কমান্ড হিসাবে কী যুক্ত করতে হবে সে সম্পর্কে আমার বেশ কয়েকটি ধারণা রয়েছে তবে সর্বাধিক প্রভাব সহ ধারণাটি মনে হয়: একটি "পরিবর্তন ডিফল্ট স্ট্যাক" কমান্ড যুক্ত করুন। ;-)

2
... অথবা একটি নাম রেজিস্টার দিয়ে ডিফল্ট স্ট্যাকের অদলবদল করুন। এটি ব্যবহারকারীর মস্তিষ্কে আরও বেশি গিঁট ফেলতে পারে তবে নাম রাখার জন্য ডিফল্ট স্ট্যাকের প্রয়োজন হবে না ...] :-)

1
হ্যাঁ, এটি অবশ্যই কার্যকর হবে! আমি একটি একক আইটেম সাফ করতে, স্ট্যাকের শীর্ষে নেই এমন আইটেমগুলি ঘোরানো এবং শীর্ষ nআইটেমগুলিকে একবারে অন্য স্ট্যাকে স্থানান্তর করতে চাই । আপাতত, যদিও এখনও dcউত্স থেকে সংকলন করতে জানি না । : /
জো

2

সি # 110 109 107 103 101 94 বাইট

using i=System.Numerics.BigInteger;i f(i n){i a=0,b=1,x=1;for(;n-->0;)x*=a=(b+=a)-a;return x;}

ব্যাখ্যা

//Aliasing BigInteger saves a few bytes
using i=System.Numerics.BigInteger;

//Since BigInteger has an implicit from int we can also change the input
//and save two more bytes.
i f(i n)
{
    //using an alternative iterative algorithm (link to source below) to cut out the temp variable
    //b is next iteration, a is current iteration, and x is the running product
    i a = 0, b = 1, x = 1; 

    //post decrement n down to zero instead of creating a loop variable
    for (; n-- > 0;)

        //The bracket portion sets the next iteration             
        //get the current iteration and update our running product
        x *= a = (b += a) - a;

    return x;
}

Iterative Fib অ্যালগরিদম


এটির চেয়ে বেশি পারফরম্যান্স দেওয়া আমার প্রত্যাশার চেয়ে বেশি যে আমি সর্বোচ্চ সেকেন্ডটি 5 সেকেন্ডের মধ্যে ফিরে আসব তা খুঁজে পেতে চেয়েছি, আমি 1540 নিয়ে বেরিয়ে এসেছি যা একটি সংখ্যা দেয় যা 247441 সংখ্যা দীর্ঘ।
জাস্টিনএম - মনিকা

চিত্তাকর্ষক। 1541 কৌতূহল ছাড়াই গণনা করতে কতক্ষণ সময় নেয়?
পান্ডাকোডার

@ পান্ডাকোডার তাই অ্যালগোরিদমে সাম্প্রতিক পরিবর্তনের সাথে সাথে এটি উল্লেখযোগ্যভাবে দ্রুততর হয়েছে। 1541 755 এমএস এ তাই আমি এখন নতুন উপ 5 সর্বোচ্চ সন্ধান করতে যাচ্ছি।
জাস্টিনএম - মনিকা

@ পান্ডাকোডার তাই রান সময়টি মোটামুটি বিট ms 100 মিমি দ্বারা পরিবর্তিত হয় তবে 2565 গড় প্রায় 5 সেকেন্ড বলে মনে হয়
জাস্টিনএম - মনিকা পুনরায় ইন্সটল করুন

সংখ্যাটি আর কত দিন?
পান্ডাকোডার

2

ব্রেন-ফ্লাক , 54 বাইট

([{}]<(())>){(({})()<{({}()<([({})]({}{}))>)}{}{}>)}{}

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

মস্তিষ্ক-ফ্ল্যাকের গুণাগুণ বড় ইনপুটগুলির জন্য একটি দীর্ঘ সময় নেয়। জেনেরিক গুণক অ্যালগরিদমের সাথে কেবল এফ 100 দ্বারা এফ 99 এর গুণন করতে কয়েক বিলিয়ন বছর লাগবে।

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

যদি স্ট্যাকটি -nদুটি সংখ্যার সমন্বিত থাকে তবে সাধারণ ফিওোনাকির ক্রমটির পুনরাবৃত্তি {({}()<([({})]({}{}))>)}{}{}গণনা করবে nএবং শেষ পর্যন্ত সমস্তগুলি বাতিল করে দেবে। প্রোগ্রামের বাকি অংশগুলি কেবলমাত্র প্রাথমিক 1 সেট আপ করে এবং পরিসরের সমস্ত সংখ্যার জন্য লুপ করে n...1

এই দোভাষী দ্বারা সরবরাহ করা অন্যান্য ভাষাগুলিতেও এখানে একই অ্যালগরিদম রয়েছে:

ব্রেন-ফ্লাক ক্লাসিক, 52 বাইট tes

({}<(())>){(({})[]<{({}[]<(({}<>)<>{}<>)>)}{}{}>)}{}

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

ব্রেন-ফ্লু, 58 বাইট

<>(<(())>)<>{(({}<>)<{({}({}))({}[()])}{}>[()]<>)}<>({}){}

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

মিনি-ফ্লাক, 62 বাইট

([{}()](())){(({})()({({}()([({})]({}{}))[({})])}{}{})[{}])}{}

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


1

গণিত - 32 26 বাইট

Fibonacci@i~Product~{i,#}&

@ মার্টিনএন্ডার 6 টি বাইট কেটে!


1

জিএপি 28 বাইট

আজকের আগে জানতাম না যে জিএপি একটি Fibonacciবিল্টিন রয়েছে।

n->Product([1..n],Fibonacci)

আপনি জিএপি লিঙ্ক করতে পারেন? এটা কি কোন ধারণা।
ফাঁস নুন

ওহো নিশ্চিত (তবে আমি এখানে এটি ব্যবহারের পক্ষে প্রথম নই ...)
খ্রিস্টান সিভর্স

1

রুবি, 85 বাইট

g =->x{(1..x).to_a.collect{|y|(0..y).inject([1,0]){|(a,b),_|[b, a+b]}[0]}.inject(:*)}

সূক্ষ্ম পরিণত, কিন্তু সম্ভবত একটি সংক্ষিপ্ত সমাধান আছে।

দ্রুত ফিবোনাচি গণনা এখান থেকে নেওয়া হয়েছে: লিঙ্ক

এটি এখানে পরীক্ষা করুন



1

ব্রেন-ফ্লাক , 110 104 100 বাইট tes

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

({}<((())<>)>){({}[()]<<>(({})<>({}<>)<>)>)}<>{}([[]]()){({}()<({}<>)<>({<({}[()])><>({})<>}{})>)}{}

ব্যাখ্যা

প্রথমে আমরা ডঃ গ্রিন ডিম এবং আয়রন ম্যানের ফিবোনাচি সিকোয়েন্স জেনারেটর কার্টেসির একটি উন্নত সংস্করণ পরিচালনা করি

({}<((())<>)>){({}[()]<<>(({})<>({}<>)<>)>)}<>{}

তারপরে স্ট্যাকের একাধিক আইটেম রয়েছে

([[]]()){({}()<...>)}

শীর্ষ দুটি আইটেম গুন করুন

({}<>)<>({<({}[()])><>({})<>}{})

এবং অতিরিক্ত শূন্য পপ

{}

1
দুর্ভাগ্যক্রমে, আমি মনে করি এটি অবৈধ, যেহেতু এটি 25 টি ইনপুটটির জন্য 10 সেকেন্ডের বেশি সময় নেয় The
ডিজেএমসিএমহেম

1

ক্লোজার, 70 বাইট

কোড গল্ফের জন্য ক্লোজার আসলেই ভাল ভাষা নয়। আচ্ছা ভালো.

এ ব্যবহার করে দেখুন http://tryclj.com

(last(nth(iterate(fn[[a b r]][b(+ a b)(* r(+ a b))])[0N 1 1])(dec n)))

1

চতুর্থ, 55 বাইট

একটি পুনরাবৃত্তি পদ্ধতির ব্যবহার করে, আমার ফিবোনাকির উত্তরটির উপরে ফোর্মে নির্মিত। গাণিতিকভাবে ফলাফলগুলি উপচে পড়ে n > 10। উত্তরটি কেস-সংবেদনশীল।

: f >r 1 1 r@ 0 DO 2dup + LOOP 2drop 1 r> 0 DO * LOOP ;

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



1

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

f=(n,a=1,b=1,c=i=1)=>n==i?c:f(n,b,a+b,c*b,++i)

পুনরাবৃত্তি এবং সংগ্রহকারী ভেরিয়েবল ব্যবহার করে। রাউন্ডিং ত্রুটি শুরু হয় f(16)

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