প্রথম-এন ফিবোনাচি ক্রম উপাদানসমূহ


11

এখানে একটি সুপরিচিত প্রশ্ন রয়েছে যা একটি সংক্ষিপ্ত (সর্বনিম্ন অক্ষর) ফাইবোনাচি সিকোয়েন্স জেনারেটরের জন্য জিজ্ঞাসা করে।

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

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

পাইথন নমুনা (প্রথম 5 উপাদান):

def f(i,j,n):
    if n>0:
        print i;
        f(j,i+j,n-1)
f(1,1,5)

1
আমি মনে করি এটি লিঙ্কযুক্ত প্রশ্নের সাথে খুব মিল। প্রথম বেশিরভাগ ক্ষেত্রে কেস পরিচালনা করতে বেশিরভাগ সমাধান সহজেই সংশোধন করা যায়।
হামার

3
আমি যেখানেই দেখেছি, বেস কেসগুলি F_0 = 0, F_1 = 1সমতুল্য হিসাবে বা হিসাবে সংজ্ঞায়িত করা হয়েছে F_1 = 1, F_2 = 1। পার্থক্যটি হ'ল আপনি সূচী 0 (প্রোগ্রামিংয়ে বেশি সাধারণ) বা 1 (গণিতে আরও সাধারণ) সিকোয়েন্সটি শুরু করতে চান কিনা।
হামার

1
এবং F_0 = 0, F_1 = 1ম্যাট্রিক্স প্রতিনিধিত্বের সাথে সরলতার সংজ্ঞা দেওয়ার একটি নির্দিষ্ট সুবিধা রয়েছে [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]]
পিটার টেলর

1
@ পিটার: এখন যেহেতু একজনকে অপরটির চেয়ে পছন্দ করার একটি ভাল কারণ (আমি দীর্ঘকালীন 0, 1 টি পছন্দসই কারণে পছন্দ করেছি, তবে বিশ্বাস করি না যে তারা তাদের মধ্যে চাপ দিচ্ছে)।
ডিএমকেকে --- প্রাক্তন মডারেটর বিড়ালছানা

1
আমি বুঝতে পারি যে এই মুহুর্তে এটি বেশ পুরানো চ্যালেঞ্জ, তবে মনে রাখবেন যে আপনি একটি উত্তর স্বীকার করেছেন যা সবচেয়ে কম নয়। যেহেতু এটি একটি কোড গল্ফ প্রতিযোগিতা, তাই সংক্ষিপ্ত উত্তরটি অবশ্যই গ্রহণযোগ্য হিসাবে চিহ্নিত হওয়া উচিত।
অ্যালেক্স এ

উত্তর:


39

সি

গণনা বিরক্ত করেনি, তবে এখানে একটি মজাদার উদাহরণ:

f(n){return n<4?1:f(--n)+f(--n);}
main(a,b){for(scanf("%d",&b);a++<=b;printf("%d ",f(a)));}

প্রুফ এটি কাজ করে।


আমি এটির জন্য বেশ গর্বিত: আমি বিরক্ত হয়ে পড়েছি, তাই আমি আমার কোডটি পুনরায় সাজিয়েছি (কয়েকটি ছোট সংযোজন সহ) যেখানে প্রতিটি লাইন ফিবোনাচি অনুক্রমের কোনও মান উপস্থাপন করে তা তৈরি করতে।

                         #                                // 1
                         f                                // 1
                         //                               // 2
                        (n)                               // 3
                       {/**/                              // 5
                      return n                            // 8
                    <2 ? 1:f(--n)                         // 13
                +f(--n); } main(a, b)                     // 21
          {a = 0, b = 0;scanf("%d",&b); for(              // 34
;a < b; a+=1) { int res = f(a); printf("%d ", res); } }   // 55

প্রুফ এটি কাজ করে।


খুশী হলাম। 90 টি অক্ষর (নিউলাইন ছাড়া) 2 বাইট সংরক্ষণ করুন: a++<=b-> a++-bএবং return--n<3?1:f(n)+f(n-1)। এছাড়াও আপনার scanfএন থাকতে হবে তবে আপনি এড়াতে পারবেন argc
ugoren

এটা ভালবাসা! --nএকই অভিব্যক্তিতে দুটি উদাহরণের ক্রমটির অপরিজ্ঞাত আচরণ অপ্রাসঙ্গিক যেখানে এটি একটি দুর্দান্ত উদাহরণ । উজ্জ্বল!
টড লেহম্যান

যাইহোক, আমি মনে করি আপনার 4আসলে সেখানে হওয়া উচিত 3। যেমনটি বর্তমানে লেখা হয়েছে <4, উত্পাদিত ক্রমটি 1, 1, 1, 2, 3, 5, 8 ... এটি অনেকগুলি 1 এর।
টড লেহম্যান

অতিরিক্তভাবে, আপনি যদি ক্রমটির জিরোথ উপাদানটি সঠিকভাবে পরিচালনা করতে চান তবে আপনি 2 টি অক্ষর যুক্ত করতে এবং কোডটি পরিবর্তন করতে পারেনreturn n<3?n>0:f(--n)+f(--n);
টড লেহম্যান

6

হাস্কেল (26)

আশ্চর্যজনকভাবে, এটি জ সলিউশন চেয়ে দীর্ঘ একটি অক্ষর।

F = ( `take`s)
গুলি = 0: scanl (+ +) 1s

আমি কয়েকটি চরিত্রগুলি শেভ করেছি:

  1. takeবাইনারি অপারেটর হিসাবে ব্যবহার ;
  2. ভার্বোজের scanlপরিবর্তে ব্যবহার করা হচ্ছে zipWith

আক্ষরিক অর্থে আমার এখানে কী চলছে তা বুঝতে আধা ঘন্টা সময় নিয়েছিল, এবং এটি sএত মার্জিত, আমি জানি না যে এরকম সমাধানের জন্য কেউ কীভাবে ভাববে! আমি যা জানতাম না তা হ'ল আপনি sসংজ্ঞা দেওয়ার সময় আবার ব্যবহার করতে পারেন s। (আমি এখনও একটি শিক্ষানবিস =)
flawr

5

এখানে একটি ওয়ান-লাইন পাইথন। এটি ভাসমান-পয়েন্ট ব্যবহার করে, তাই এমন কিছু কিছু থাকতে পারে nযার জন্য এটি আর সঠিক নয়।

F=lambda n:' '.join('%d'%(((1+5**.5)/2)**i/5**.5+.5)for i in range(n))

F(n)nস্পেস দ্বারা পৃথক করা প্রথম ফিবোনাচি সংখ্যাযুক্ত একটি স্ট্রিং প্রদান করে।


আমি এটি করার কথা ভাবছিলাম, তবে ভেবেছিলাম এটি খুব দীর্ঘ হবে। আমি মেঝে ব্যবহার সম্পর্কে ভাবিনি। খুব সুন্দর.
ক্রিস হার্পার

আহ, বিনেটের সূত্র। আমি এটিও ব্যবহার করেছি এবং এটি সঠিক, আপনি যদি প্রথম হিসাবে 0 গণনা করেন তবে কমপক্ষে 59 তম ফিবোনাচি নম্বর পর্যন্ত। এর পরে সংখ্যাগুলি খুব বড় হয়ে যায় এবং এটি ব্যবহারকারীদের ব্যবহার শুরু করে।
এলসার

ফাংশন সংজ্ঞায়িত করতে 70 টি অক্ষর, 1 লাইন। প্রার্থনা করার জন্য + 4 + ক্রল্ফ বেশ ভাল!
ওয়ারেন পি

5

গল্ফস্ক্রিপ্ট, 16 টি অক্ষর

~0 1@{.2$+}*;;]`

উদাহরণ আউটপুট:

$ ruby golfscript.rb ~/Code/golf/fib.gs <<< "12"
[0 1 1 2 3 5 8 13 21 34 55 89]



3

পার্ল, 29 28 বাইট

perl -E'say$b+=$;=$b-$;for-pop..--$;' 8
1
1
2
3
5
8
13
21

ব্যাখ্যা

এটি ক্লাসিক উপর ভিত্তি করে $b += $a = $b-$a পুনরাবৃত্তির যা নীচে কাজ করে:

  • প্রতিটি লুপের শুরুতে $aথাকে F(n-2)এবং$b এতে থাকেF(n)
  • পরে $a = $b-$a $aথাকেF(n-1)
  • পরে $b += $a $bথাকেF(n+1)

এখানে সমস্যাটি প্রাথমিককরণ is শাস্ত্রীয় উপায় হয়$b += $a = $b-$a || 1 কিন্তু পরে ক্রম যায়1 2 3 5 ...

বাম দিকে ফিবোনাচি ক্রম প্রসারিত করে:

... 5 -3 2 -1 1 0 1 1 2 3 5 ...

আপনি দেখতে পারেন যে সঠিক সূচনা পয়েন্ট $a = -1 এবং $b = 0। আরম্ভ করা এ লুপ স্থাপনের সাথে একত্রিত হতে পারে

অবশেষে প্রতিস্থাপন $aদ্বারা $;আগে জায়গা পরিত্রাণ পেতেfor


2

আমি আপনাকে একটি দুটি লাইন পাইথন সমাধান দিতে পারি। এটি তাদের তালিকা হিসাবে ফিরিয়ে দেবে।

f = lambda n: 1 if n < 2 else f(n-1) + f(n-2)
g = lambda m: map(f, range(0,m))

print g(5)

এগুলি স্ট্রিং তৈরি করতে এবং তারপরে একটি যোগ যোগ করে অন্য মানচিত্র যুক্ত করে আপনি এগুলি মুদ্রণ করতে পারেন তবে এটি আমার কাছে অপ্রয়োজনীয় বলে মনে হয়।

দুর্ভাগ্যক্রমে আমি জানি না কীভাবে পুনরাবৃত্ত ল্যাম্বডায় লাগাতে হয় map, তাই আমি দুটি লাইনে আটকে আছি।


এটা কি জন্য ফিরে g(100)? ;)
মিঃ ল্লামা

@ গিগা ওয়াট হেহ, ওপি কখনও বলেনি যে এটি যুক্তিসঙ্গত হতে হবে। অ্যাসিম্পটোটিক চলমান সময় কি ও (এন (1.62) ^ n) এর মতো কিছু?
ক্রিস হার্পার

আপনি এটি করতে পারেন এমন এক উপায় এখানে (ধরণের)। যে নোট f(n)সঙ্গে n<=0আয় পূর্ণসংখ্যার, এবং n>0আয় তালিকা, তাই .. হয়তো এটা না আদর্শ:f = lambda n: map(f, (-x for x in range(0, n))) if n > 0 else -n if n > -2 else f(n+1) + f(n+2)
ডিলন গুটিসুটি মেরে

যাইহোক, আপনি 0আপনার উত্তরে প্রথমটি মিস করেছেন । fফিরতে পরিবর্তন করা n if n < 2এক কাজ work :)
ডিলন কাওয়ার

@ DC আমি আপনার সমাধানটি পছন্দ করি। বেশ সৃজনশীল। হ্যাঁ, আমি আমার শুরুটি 1, 1 দিয়ে শুরু করেছি কারণ আমি সর্বদা এটি শিখেছি। আমি ভেবেছিলাম এটি পরিবর্তন করা যথেষ্ট সহজ।
ক্রিস হার্পার

2

পাইথন (rs 78 টি)

আমি ফিনোনাচি সংখ্যাগুলি গণনা করতে বিনেটের সূত্র ব্যবহার করেছি -

[(1 + + বর্গমূল (5)) ^ n- (1-বর্গমূল (5) ^ n হল] / [(2 ^ ঢ) বর্গমূল (5)]

এটি এখানে অন্যান্য উত্তরগুলির মতো কিছু ছোট নয়, তবে ছেলে এটি দ্রুত

n=input()
i=1
x=5**0.5
while i<=n:
    print ((1+x)**i-(1-x)**i)/((2**i)*x)
    i+=1

1
পাইথন (12 টি চর): print"11235":)
জোয়েল করনেট

চারপাশে প্রথম বন্ধনীর হাত থেকে মুক্তি পেয়ে আপনি 2 টি অক্ষর শেভ করতে পারেন 2**i**এর চেয়ে বেশি প্রাধান্য রয়েছে*
জোয়েল করনেট

বিনেটের সূত্রে দ্বিতীয় শব্দটি ছোট শুরু হয় এবং কেবল আরও ছোট হয়। আপনি এটি পুরোপুরি ছেড়ে দিতে পারেন এবং পরিবর্তে নিকটতম পূর্ণসংখ্যায় প্রথম পদটির ফলাফলটি প্রায় গোল করতে পারেন (বা 0.5 যোগ করুন এবং নীচে যোগ করুন)
টন হসপেল



2

জে, 25 টি অক্ষর

আমি বুঝতে পেরেছি যে জে সলিউশনগুলি সম্ভবত আপনার পরে নয়, তবে যাইহোক এখানে একটি। :-)

0 1(],+/&(_2&{.))@[&0~2-~

ব্যবহার:

    0 1(],+/&(_2&{.))@[&0~2-~ 6
0 1 1 2 3 5
    0 1(],+/&(_2&{.))@[&0~2-~ 10
0 1 1 2 3 5 8 13 21 34

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

ডান থেকে শুরু করা (কারণ জে প্রোগ্রামগুলি ডান থেকে বামে পড়া হয়),

2-~ 6~অপারেটর ক্রিয়া আর্গুমেন্ট প্রাপ্ত করতে reverses তাই এই হিসাবে একই6-2

আপাতত বন্ধনীতে বিভাগটিকে উপেক্ষা করে, বন্ধনীগুলিতে 0 1(...)@[&0~ xক্রিয়াটি গ্রহণ xকরে এবং তালিকাটিকে 0 1তার ইনপুট হিসাবে ব্যবহার করে বারবার সম্পাদন করে - ~আবার এখানে যুক্তিগুলি বিপরীত করে দেয় x (...)@[&0 ] 0 1, অর্থাত্ আমি ফাংশনটির শেষে ইনপুটটি রাখতে পারি।

বন্ধনীর মধ্যে একটি কাঁটাচামচ হয় ],+/&(_2&{.)- যা তিন ক্রিয়া গঠিত ], ,এবং +/&(_2&{.)

একটি কাঁটাচামচটি তিনটি ক্রিয়া নেয় a b cএবং সেগুলি এ জাতীয়ভাবে ব্যবহার করে: কাঁটাচামড়ার যুক্তিগুলি (x a y) b (x c y)কোথায় xএবং y,এই কাঁটাচামচ মধ্যে কেন্দ্র ক্রিয়া এবং ফলাফল যোগদান করে x ] yএবং x +/&(_2&{.) yএকসঙ্গে।

]বাম আর্গুমেন্টটি অপরিবর্তিত রেখে দেয় যাতে x ] yমূল্যায়ন করে x

+/&(_2&{.)প্রদত্ত তালিকা থেকে শেষ দুটি আইটেম গ্রহণ করে (_2&{.)- এই ক্ষেত্রে 0 1- এবং তারপরে সেগুলি একসাথে যুক্ত করে +/( &গুলি কেবল আঠালো হিসাবে কাজ করে)।

ক্রিয়াটি একবার চালিত হলে ফলাফলটি পরবর্তী রানের জন্য ফিরে আসে, ক্রমটি তৈরি করে।


2

টিআই-বেসিক, 43 টি অক্ষর

:1→Y:0→X
:For(N,1,N
:Disp X
:Y→Z
:X+Y→Y
:Z→X
:End

এই কোডটি সরাসরি মূল প্রোগ্রামে sertedোকানো যেতে পারে, বা একটি পৃথক প্রোগ্রামে তৈরি করা যেতে পারে যা প্রথম দ্বারা রেফারেন্স করা হয়।


এটিই প্রথম টিআই-বেসিক সমাধান যা আমি এখানে কখনও দেখেছি যা আমার দ্বারা হয় নি :) +1
টিমটেক

এছাড়াও, অন্যান্য লোকেদের জন্য নোট করুন যে এখানে নিউলাইনগুলি গণনা করা হয়নি কারণ সেগুলি সরানো যেতে পারে।
টিমটেক

আমি সবেমাত্র একটি টিআই -২২ বিগ-জায়ান্ট-কিওয়ার্টি-কীবোর্ড ক্যালকুলেটর পেয়েছি। এই এক জন্য ধন্যবাদ।
ওয়ারেন পি

2

এপিএল (33)

{⍎'⎕','←0,1',⍨'←A,+/¯2↑A'⍴⍨9×⍵-2}

ব্যবহার:

   {⍎'⎕','←0,1',⍨'←A,+/¯2↑A'⍴⍨9×⍵-2}7
0 1 1 2 3 5 8

বক্স অক্ষরটি কি এপিএলের একটি অংশ বা অনুপস্থিত-গ্লাইফ?
ওয়ারেন পি

@ ওয়ারেনপ: আপনি যদি বাম দিক থেকে চতুর্থ চরিত্রটি বোঝাতে চান তবে এটিকে একটি 'কোয়াড' বলা হয় এবং এটি দেখতে এটির মতো দেখা উচিত। কেবল একটি বাক্স থাকা উচিত।
মেরিনাস


1

পাওয়ারশেল - 35 টি অক্ষর

পাওয়ারশেল পাইপলাইন ইনপুট গ্রহণ করে , তাই আমি বিশ্বাস করি n |inn | <mycode> আমার গণনা বিরুদ্ধে করা উচিত হবে না, কিন্তু এর পরিবর্তে শুধু ভাষায় একটি "ফাংশন" সূচনা এর একটি অংশ।

প্রথম সমাধানটি 0 থেকে শুরু করে:

%{for($2=1;$_--){($2=($1+=$2)-$2)}}

দ্বিতীয় সমাধান ধরে নেওয়া হয় যে আমরা 1:

%{for($2=1;$_--){($1=($2+=$1)-$1)}}

অনুরোধের উদাহরণ: 5 | %{for($2=1;$_--){($1=($2+=$1)-$1)}}

উৎপাদনের:

1
1
2
3
5

মজার ব্যাপার হচ্ছে, এর ওভারহেড এড়াতে প্রচেষ্টা for()লুপ একই অক্ষর সংখ্যা ফলে: %{$2=1;iex('($1=($2+=$1)-$1);'*$_)}


1

পাইথন, ৪৩ টি চর

এখানে তিনটি মৌলিকভাবে পৃথক ওয়ান-লাইনার রয়েছে যা বিনেটের সূত্র ব্যবহার করে না।

f=lambda n:reduce(lambda(r,a,b),c:(r+[b],a+b,a),'.'*n,([],1,0))[0]
f=lambda n:map(lambda x:x.append(x[-1]+x[-2])or x,[[0,1]]*n)[0]
def f(n):a=0;b=1;exec'print a;a,b=b,a+b;'*n

আমি কখনও reduceএত খারাপ ব্যবহার করিনি ।


1
reduceঅপব্যবহারের জন্য +1
ওয়ারেন পি

1

ডিসি, 32 টি অক্ষর:

এটি আসলে সর্বদা প্রথম প্রথম দুটি দেখায়, সুতরাং ফাংশনটি কেবল N> = 2 এর প্রত্যাশা অনুযায়ী কাজ করে ।

?2-sn1df[dsa+plarln1-dsn0<q]dsqx

সি, 75 টি অক্ষর:

গৃহীত উত্তরের মতো শীতল নয়, তবে খাটো এবং দ্রুততর উপায়:

main(n,t,j,i){j=0,i=scanf("%d",&n);while(n--)t=i,i=j,printf("%d\n",j+=t);}
অতিরিক্ত:

সিএল, characters৪ টি অক্ষর:

আমার সর্বাধিক ব্যবহৃত বুকমার্কগুলির একটি এই সেমিস্টারের একটি আকর্ষণীয় উদাহরণ রয়েছে যা এখানকার অন্যান্য অনেকের চেয়ে কম , এবং এটি কেবল loopম্যাক্রোর একটি সরাসরি-এগিয়ে প্রার্থনা - মূলত কেবল একটি বিবৃতি! আমি যে সমস্ত সাদা স্পেস করতে পারি তার জন্য এটি ছিনিয়ে নিয়েছে:

(loop repeat n for x = 0 then y and y = 1 then(+ x y)collect y)

বেশ সংক্ষিপ্ত, এবং সুন্দর এবং পঠনযোগ্য! ইনপুট পড়ার জন্য, n (আশেপাশের সাদা জায়গাগুলি সহ) (read)3 টি অক্ষর যুক্ত করে প্রতিস্থাপন করা যেতে পারে ।


... mainচারটি যুক্তি লাগে না?
বিড়াল

1
আপনি এটি হিসাবে যতটা লাগে।
এক্ষেত্রে


1

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

পূর্বে পোস্ট করা সমাধানের উন্নতি:

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

execলুপগুলি এড়ানোর জন্য এটি স্ট্রিং গুণ এবং ব্যবহার করে ।

পাইথন 3, 46 বাইট

পাইথন 3 তে যথেষ্ট দক্ষ নয়:

a=b=1
exec('print(a);a,b=b,a+b;'*int(input()))

পাইথন 2 এ স্যুইচ করে আপনি 9 টি বাইট সংরক্ষণ করতে পারেন: এটি অনলাইনে চেষ্টা করুন! আপনি সম্ভবত আপনার উত্তরে পাইথন 2 সংস্করণ যুক্ত করতে পারেন।
স্টিফেন

@ স্টেফেন ভাল পয়েন্ট! আপডেট করা হয়েছে।
রাসেল শোয়ার্জ

0

C99, 58 টি অক্ষর

নীচের ফাংশনটি n0 দিয়ে শুরু হওয়া ফিবোনাচি ক্রম থেকে প্রথম মানগুলির সাথে পূর্ণসংখ্যার অ্যারে পূরণ করে ।

void f(int*a,int n){for(int p=0,q=1;n--;q+=*a++)*a=p,p=q;}

nকমান্ড লাইন আর্গুমেন্ট হিসাবে গ্রহণের জোতা পরীক্ষা করুন :

#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
     int n = (argc > 1) ? atoi(argv[1]) : 1;
     int a[n];
     f(a, n);
     for (int i = 0; i < n; ++i)
          printf("%d\n", a[i]);
}


0

পিএইচপি, 87

function f($n,$a=array(0,1)){echo' '.$a[0];$n>0?f(--$n,array($a[1],array_sum($a))):'';}

array_sumসিরিজ উত্পন্ন করতে পুনরাবৃত্তি ফাংশন ব্যবহার করে ।

উদাহরণ:

 $ php5 fibo.php 9
 0 1 1 2 3 5 8 13 21 34 


0

স্কালা, 65 টি অক্ষর

(Seq(1,0)/:(3 to 9)){(s,_)=>s.take(2).sum+:s}.sorted map println

এই মুদ্রণগুলি উদাহরণস্বরূপ, প্রথম 9 ফিবোনাচি সংখ্যাগুলি। কনসোল ইনপুট থেকে ক্রম দৈর্ঘ্যের আরও বেশি ব্যবহারযোগ্য সংস্করণের জন্য, 70 টি অক্ষর প্রয়োজন:

(Seq(1,0)/:(3 to readInt)){(s,_)=>s.take(2).sum+:s}.sorted map println

কোনও রেঞ্জের ব্যবহার এটিকে ইন্টার মানগুলির মধ্যে সীমাবদ্ধ রাখুন।


0

প্রশ্ন 24

f:{{x,sum -2#x}/[x;0 1]}

প্রথম এন ফিবোনাচি সংখ্যাগুলি


0

লুয়া, 85 বাইট

আমি লুয়া শিখছি তাই পুলটিতে এই ভাষাটি যুক্ত করতে চাই।

function f(x)
    return (x<3) and 1 or f(x-1)+f(x-2)
end
for i=1,io.read() do
    print(f(i))
end

কমান্ড লাইন আর্গুমেন্ট হিসাবে প্যারামিটার সহ পুরো জিনিসটি 85 টি অক্ষর নিয়েছিল। আরেকটি ভাল পয়েন্ট এটি পড়া সহজ।


0

মিথ্যা, 20 টি অক্ষর

^1@[1-$][@2ø+$.\9,]#

এটি চালানোর আগে ইনপুট স্ট্যাকের মধ্যে থাকা উচিত।


0

পাইট , 3 বাইট

ř⁻Ḟ

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

an একটি অ্যারে তৈরি করে [1, 2, 3, ..., এক্স]
Every প্রতিটি আইটেম একবার হ্রাস পায় (হিসাবে Ḟ 0 সূচকযুক্ত)
X এক্স এর প্রতিটি আইটেম এটিকে ফিবোনাকির সমতুল্যে রূপান্তর করে


0

x86 মেশিন কোড - 379 বাইট

ELF শিরোনাম সহ সংস্করণটি 484 বাইট স্কোর করেছে:

00000000: 7f45 4c46 0101 0100 0000 0000 0000 0000  .ELF............
00000010: 0200 0300 0100 0000 c080 0408 3400 0000  ............4...
00000020: 0000 0000 0000 0000 3400 2000 0200 2800  ........4. ...(.
00000030: 0000 0000 0100 0000 0000 0000 0080 0408  ................
00000040: 0000 0000 e401 0000 0010 0000 0500 0000  ................
00000050: 0010 0000 0100 0000 0000 0000 0090 0408  ................
00000060: 0000 0000 0000 0000 0000 1000 0600 0000  ................
00000070: 0010 0000 0000 0000 0000 0000 0000 0000  ................
00000080: 51b9 0090 0408 8801 31c0 ba01 0000 00eb  Q.......1.......
00000090: 0351 89c1 31c0 89c3 43b0 04cd 8031 c099  .Q..1...C....1..
000000a0: 4259 c300 0000 0000 0000 0000 0000 0000  BY..............
000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000c0: 31c0 9942 b903 9004 08c6 4101 0ac6 4102  1..B......A...A.
000000d0: 01c6 4103 013a 7103 0f84 ff00 0000 3a71  ..A..:q.......:q
000000e0: 0374 2680 4103 050f b641 036b c008 0041  .t&.A....A.k...A
000000f0: 048a 4104 e887 ffff ff80 6904 30c6 4103  ..A.......i.0.A.
00000100: 0183 e903 3a71 0375 da8a 4104 e86f ffff  ....:q.u..A..o..
00000110: ff3a 7106 0f84 ba00 0000 0fb6 4105 8841  .:q.........A..A
00000120: 060f b641 0788 4105 0fb6 4107 0041 06c6  ...A..A...A..A..
00000130: 4107 003a 7106 0f84 8800 0000 c641 0701  A..:q........A..
00000140: fe49 063a 7106 0f84 7800 0000 c641 0702  .I.:q...x....A..
00000150: fe49 063a 7106 0f84 6800 0000 c641 0703  .I.:q...h....A..
00000160: fe49 063a 7106 0f84 5800 0000 c641 0704  .I.:q...X....A..
00000170: fe49 063a 7106 744c c641 0705 fe49 063a  .I.:q.tL.A...I.:
00000180: 7106 7440 c641 0706 fe49 063a 7106 7434  q.t@.A...I.:q.t4
00000190: c641 0707 fe49 063a 7106 7428 c641 0708  .A...I.:q.t(.A..
000001a0: fe49 063a 7106 741c c641 0709 fe49 063a  .I.:q.t..A...I.:
000001b0: 7106 7410 fe41 08fe 4109 fe49 060f b641  q.t..A..A..I...A
000001c0: 0688 4107 c641 0601 83c1 033a 7106 0f85  ..A..A.....:q...
000001d0: 46ff ffff 3a71 030f 8501 ffff ffb3 0031  F...:q.........1
000001e0: c040 cd80                                .@..

শিরোনামহীন সংস্করণ (এটিই গ্রেড করা উচিত):

00000000: 67c6 4101 0a67 c641 0201 67c6 4103 0167  g.A..g.A..g.A..g
00000010: 3a71 030f 842a 0167 3a71 0374 2e67 8041  :q...*.g:q.t.g.A
00000020: 0305 6667 0fb6 4103 666b c008 6700 4104  ..fg..A.fk..g.A.
00000030: 678a 4104 e80d 0167 8069 0430 67c6 4103  g.A....g.i.0g.A.
00000040: 0166 83e9 0367 3a71 0375 d267 8a41 04e8  .f...g:q.u.g.A..
00000050: f200 673a 7106 0f84 df00 6667 0fb6 4105  ..g:q.....fg..A.
00000060: 6788 4106 6667 0fb6 4107 6788 4105 6667  g.A.fg..A.g.A.fg
00000070: 0fb6 4107 6700 4106 67c6 4107 0067 3a71  ..A.g.A.g.A..g:q
00000080: 060f 84a3 0067 c641 0701 67fe 4906 673a  .....g.A..g.I.g:
00000090: 7106 0f84 9200 67c6 4107 0267 fe49 0667  q.....g.A..g.I.g
000000a0: 3a71 060f 8481 0067 c641 0703 67fe 4906  :q.....g.A..g.I.
000000b0: 673a 7106 0f84 7000 67c6 4107 0467 fe49  g:q...p.g.A..g.I
000000c0: 0667 3a71 0674 6167 c641 0705 67fe 4906  .g:q.tag.A..g.I.
000000d0: 673a 7106 7452 67c6 4107 0667 fe49 0667  g:q.tRg.A..g.I.g
000000e0: 3a71 0674 4367 c641 0707 67fe 4906 673a  :q.tCg.A..g.I.g:
000000f0: 7106 7434 67c6 4107 0867 fe49 0667 3a71  q.t4g.A..g.I.g:q
00000100: 0674 2567 c641 0709 67fe 4906 673a 7106  .t%g.A..g.I.g:q.
00000110: 7416 67fe 4108 67fe 4109 67fe 4906 6667  t.g.A.g.A.g.I.fg
00000120: 0fb6 4106 6788 4107 67c6 4106 0166 83c1  ..A.g.A.g.A..f..
00000130: 0367 3a71 060f 8521 ff67 3a71 030f 85d6  .g:q...!.g:q....
00000140: fe00 0000 6651 66b9 7801 0000 6788 0166  ....fQf.x...g..f
00000150: 31c0 66ba 0100 0000 eb05 6651 6689 c166  1.f.......fQf..f
00000160: 31c0 6689 c366 43b0 04cd 8066 31c0 6699  1.f..fC....f1.f.
00000170: 6642 6659 c300 0000 0000 00              fBfY.......

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