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


19

এখনও এটির একটি প্রতিযোগিতা বলে মনে হচ্ছে না।

কাজটি সহজ। nসমতুল্য ফিবোনাচি ক্রমের প্রথম সংখ্যা যুক্ত করুন এবং ফলাফলটি আউটপুট করে।

এই দেওয়া হয় OEIS A099919 ছাড়া ক্রম একের পর স্থানান্তরিত করা হয়, দিয়ে শুরু fib(1) = 0পরিবর্তে fib(1) = 1

এটি কোড গল্ফ। সর্বনিম্ন বাইট গণনা জয়।

উদাহরণ

n sum
1 0
2 2
3 10
4 44
5 188
6 798
7 3382
8 14328
9 60696

সম্পর্কিত



@ ইস্টারলিআইর্ক পরীক্ষার কেসগুলি পরবর্তীকালে বোঝায় তবে এটি স্পষ্টভাবে বলা উচিত।
মেগো

@ মেগো হ্যাঁ, আমি অনেকটা বুঝতে পেরেছি।
Rɪᴋᴇʀ

9
দয়া করে উত্তরগুলি এত তাড়াতাড়ি গ্রহণ করবেন না। এটি মাত্র এক ঘন্টা হয়েছে, গল্ফায়ার উত্তর আসতে পারে E সম্পাদনা: আমি এখন দেখছি ইতিমধ্যে একটি ছোট উত্তর এখনও গ্রহণ করা হয়নি।
আর

6
কোনও উত্তর গ্রহণের আগে কমপক্ষে এক সপ্তাহ অপেক্ষা করার রীতি আছে, কারণ চ্যালেঞ্জটি এখন আর সক্রিয় নয় বলে অনেক লোক এটিকে একটি চিহ্ন হিসাবে ব্যাখ্যা করে।
জাগারব

উত্তর:


8

ওসিস , 8 7 5 বাইট

1 বাইট @ETHProductions এবং 2 আরও সংরক্ষিত ধন্যবাদ @ আদনান ধন্যবাদ সংরক্ষণ করা!

zc»+U

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

ব্যাখ্যা:

এটি আমার এমএটিএল উত্তর হিসাবে একই পুনরাবৃত্ত সূত্র ব্যবহার করে।


1
ওসিসের তথ্য.টি.এস.টি.এস. বলছে কোডটির Uসাথে প্রতিস্থাপন করা হয়েছে, এটি 00আপনাকে বাইট বাঁচাতে পারে?
ইটিএইচ প্রডাকশনগুলি

@ ইথ প্রডাকশন ধন্যবাদ! আমি এটি ভুলে গেছি
লুইস মেন্ডো

1
নিস! আপনি :) এর 4*সাথে zএবং এর 2+সাথে প্রতিস্থাপন করতে পারেন»
আদনান

@ আদনান আপনাকে ধন্যবাদ! আমার সত্যিই দস্তাবেজটি পড়তে হবে :-)
লুইস মেন্ডো

17

পাইথন, 33 বাইট

c=2+5**.5
lambda n:(7-c)*c**n//20

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

যাদু সূত্র!


3
ওহ খোদা. আপনি দ্বিতীয় লাইনে যে "মন্তব্য করছেন" কেন তা অনুধাবন করার চেয়ে আমাকে অনেক বেশি সময় লেগেছিল: পি
থিও

@ এক্সনর, এই যাদু সূত্রের কোনও রেফারেন্স?
থিচেন

@ দ্য চেচান: সম্ভবত a(n) = (-10 + (5-3*sqrt(5))*(2-sqrt(5))^n + (2+sqrt(5))^n*(5+3*sqrt(5)))/20(কলিন বার্কার, নভেম্বর 26 2016) ওইআইএস পৃষ্ঠা থেকে
টিটাস


7

আসলে , 6 বাইট

r3*♂FΣ

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

ব্যাখ্যা:

প্রতি তৃতীয় ফিবোনাচি নম্বর (থেকে শুরু F_0 = 0) সমান । সুতরাং, প্রথম nএমনকি ফিবানচি সংখ্যা F_{i*3}জন্য iমধ্যে [0, n)

r3*♂FΣ
r       [0, n)
 3*     multiply each element by 3
   ♂F   retrieve the corresponding element in the Fibonacci sequence
     Σ  sum

7

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

f=x=>x>1&&4*f(x-1)+f(x-2)+2

পুনরুদ্ধার! এটি OEIS পৃষ্ঠার একটি সূত্র ব্যবহার করে:

f (n <1) = 0, f (n) = 4 * a (n + 1) + a (n) +2

(তবে একের দ্বারা স্থানান্তরিত হয়েছে কারণ চ্যালেঞ্জ একে একে বদলে দেয়)



4

পার্ল 6 ,  38 35  32 বাইট

{[+] grep(*%%2,(1,&[+]...*))[^($_-1)]}

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

{[+] grep(*%%2,(0,1,*+*...*))[^$_]}

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

{[+] (0,1,*+*...*)[3,6...^$_*3]}

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

সম্প্রসারিত:

{  # bare block lambda with implicit parameter 「$_」

  [+]                       # reduce with 「&infix:<+>」

    ( 0, 1, * + * ... * )\  # fibonacci sequence with leading 0

    [ 3, 6 ...^ $_ * 3 ]    # every 3rd value up to
                            # and excluding the value indexed by
                            # the input times 3

}

3

অক্টাভা , 36 35 33 বাইট

@(n)filter(2,'FAD'-69,(1:n)>1)(n)

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

ব্যাখ্যা

এই বেনামে ফাংশনটি পুনরাবৃত্ত ফিল্টারa(n) = 4*a(n-1)+a(n-2)+2 হিসাবে পার্থক্য সমীকরণ প্রয়োগ করে :

Y = filter(B,A,X)ভেক্টর Xদ্বারা বর্ণিত ফিল্টার সহ Aএবং Bফিল্টারযুক্ত ডেটা তৈরি করতে ভেক্টরে ডেটা ফিল্টার করে Y। ফিল্টারটি স্ট্যান্ডার্ড পার্থক্য সমীকরণের একটি "প্রত্যক্ষ ফর্ম II ট্রান্সপোজড" বাস্তবায়ন:

a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1) - ... - a(na+1)*y(n-na)

আমাদের ক্ষেত্রে A = [1 -4 -1], B = 2এবং ইনপুটটি xএকটি ভেক্টর হওয়া উচিত, ফলাফলটি আউটপুটটির সর্বশেষ প্রবেশ হিসাবে প্রদর্শিত হবে y। যাইহোক, আমরা ইনপুটটির 0প্রথম মানটি সেট করেছিলাম যাতে 0প্রয়োজনীয় হিসাবে আউটপুটে একটি প্রাথমিক প্রদর্শিত হয়।

'FAD'-69গুণাগুণ ভেক্টর উত্পাদন করার জন্য কেবল একটি ছোট্ট উপায় A = [1 -4 -1]; এবং (1:n)>1ইনপুট ভেক্টর উত্পাদন করে x = [0 1 1 ... 1]


3

ডিসি , 25 22 বাইট

9k5v1+2/3?*1-^5v/0k2/p

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

অথবা প্রোগ্রামটি কোনও ফাইলে সংরক্ষণ করুন এবং টাইপ করে এটি চালান

dc -f *filename*

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


এই প্রোগ্রামটি প্রথম n এমনকি ফিবোনাচি সংখ্যার যোগফলের জন্য সূত্র (এফ (3n-1) -1) / 2 ব্যবহার করে, যেখানে এফ (0) = 0, এফ (1) = প্রদত্ত সাধারণ ফিবোনাচি ফাংশন 1, এফ (এন) = এফ (এন -2) + এফ (এন -1) এন> = 2 এর জন্য।


ডিসি একটি স্ট্যাক-ভিত্তিক ক্যালকুলেটর। এখানে একটি বিশদ ব্যাখ্যা:

9k  # Sets the precision to 9 decimal places (which is more than sufficient).

5v  # Push the square root of 5

1+  # Add 1 to the number at the top of the stack.

2/  # Divide the number at the top of the stack by 2.

এই মুহুর্তে, সংখ্যা (1 + বর্গক্ষেত্র (5)) / 2 স্ট্যাকের শীর্ষে রয়েছে।

3   # Push 3 on top of the stack.

?   # Read a number from stdin, and push it.

\*  # Pop two numbers from the stack, multiply them, and push the product

1-  # Subtract 1 from the number at the top of the stack.

এই মুহুর্তে, 3n-1 স্ট্যাকের শীর্ষে রয়েছে (যেখানে এনটি ইনপুট হয়), এবং (1 + sqrt (5)) / 2 শীর্ষ থেকে দ্বিতীয়।

^   # Pop two numbers from the stack (x, then y), compute the power y^x, and push that back on the stack.

5v/ # Divide the top of the stack by sqrt(5).

এই মুহুর্তে, স্ট্যাকের শীর্ষে নম্বরটি (((1 + বর্গফুট (5)) / 2) ^ (3n-1)) / স্কয়ার্ট (5) এই সংখ্যার নিকটতম পূর্ণসংখ্যা হল F (3n-1)। নোট করুন যে F (3n-1) সর্বদা একটি বিজোড় সংখ্যা।

0k # Change precision to 0 decimal places.

2/ # Divide the top of the stack by 2, truncating to an integer.

p # Print the top of the stack on stdout.

3

গণিত, 27 21 বাইট

বিকল্প সূত্রটি নির্দেশ করার জন্য xnorকে ধন্যবাদ, সূচক শুরুর জন্য সংশোধন করার জন্য আলেফালফা

Fibonacci[3#-1]/2-.5&

1
পারে (Fibonacci(3*n+2)-1)/2সূত্র খাটো হতে পারে?
xnor

2

এমএটিএল , 15 14 বাইট

OOi:"t4*b+2+]x

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

ব্যাখ্যা

এটি ওইআইএসের পুনরাবৃত্তি সূত্রগুলির একটি ব্যবহার করে:

a (n) = 4 * a (n-1) + a (n-2) +2

ইনপুট এন এর জন্য কোড এন বার পুনরাবৃত্তি করে , যা প্রয়োজনের তুলনায় 2 গুণ বেশি। এই সেটিংস এর দ্বারা জন্য ক্ষতিপূরণ পায় 0, 0(পরিবর্তে 0, 2) প্রাথমিক মান হিসাবে, এবং শেষ প্রাপ্ত মান মোছা এবং আগের প্রদর্শন করে।

OO      % Push two zeros as initial values of a(n-2), a(n-1)
i       % Input N
:"      % Do this N times
  t     %   Duplicate a(n-1)
  4*    %   Multiply by 4
  b+    %   Bubble up a(n-2) and add to 4*a(n-1)
  2+    %   Add 2. Now we have 4*a(n-1)+a(n-2)+2 as a(n), on top of a(n-1)
]       % End
x       % Delete last value, a(n). Implicitly display the remaining value, a(n-1)

2

ব্যাচ, 80 বাইট

@set/at=x=0,y=1
@for /l %%i in (2,1,%1)do @set/az=x+y,y=z+x,t+=x=y+z
@echo %t%

প্রতিটি তৃতীয় ফিবোনাচি সংখ্যা সমান হয় এবং এটি একবারে তিনটি গণনা করে (একসাথে একাধিক গণনা করা আসলে আরও সহজ কারণ আপনার চারপাশের মানগুলি অদলবদল করতে হবে না) এই বিষয়টি ব্যবহার করে। আমি (Fibonacci(3*n+2)-1)/2গঠনের চেষ্টা করেছি কিন্তু এটি আসলে কয়েক বাইট দীর্ঘ ( t+=কোড আকারের দিক থেকে বেশ দক্ষ বলে প্রমাণিত হয়)।


2

সি, 82 38 36 বাইট

2 বাইট @ ব্রেনস্টিলকে ধন্যবাদ রক্ষা করেছে

ওইআইএস পৃষ্ঠার সূত্রগুলি এটিকে আরও খাটো করে তুলেছে:

a(n){return--n<1?0:4*a(n)+a(n-1)+2;}

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

82 বাইট:

x,s,p,n,c;f(N){s=0;p=n=1;c=2;while(n<N){if(~c&1)s+=c,n++;x=p+c;p=c;c=x;}return s;}

প্রথম সংস্করণটি 75 বাইট হয় তবে ফাংশনটি পুনরায় ব্যবহারযোগ্য নয়, যদি না আপনি সর্বদা আগের কলটির fচেয়ে Nবেশি কল করেন :-)

x,s,p=1,n=1,c=2;f(N){while(n<N){if(~c&1)s+=c,n++;x=p+c;p=c;c=x;}return s;}

আমার প্রথম উত্তর এখানে। অন্য কোনও উত্তর বা ওইআইএস চেক করে নি। আমি অনুমান করি যে এর কয়েকটি সংক্ষিপ্ত করতে আমি প্রয়োগ করতে পারি:


1
আপনি কিছুটা a(n){return--n<1?0:4*a(n)+a(n-1)+2;}
জিনিসকে এলোমেলো করে এটিকে

1

হাস্কেল ( 32 31 বাইট)

@ ক্রিশ্চিয়ানসিভার্সকে একটি বাইট সংরক্ষণ করা হয়েছে।

OEIS এ দেওয়া সূত্রটি ব্যবহার করে: a(n) = 4*a(n-1)+a(n-2)+2, n>1গ্যারি ডেটলিফস দ্বারা

a n|n>1=4*a(n-1)+a(n-2)+2|n<2=0


n<=1পূর্ণসংখ্যার জন্য বলার একটি গল্ফিয়ার উপায় হ'ল n<2। এছাড়াও, দ্বিতীয় শর্তটি প্রথমটির প্রত্যাখ্যান হওয়ার দরকার নেই (আইডোমেটিকটি otherwiseকেবল সহজভাবে হয় True), তাই সাধারণত গল্ফিংয়ের মতো 1<2কিছু ব্যবহৃত হয়।
খ্রিস্টান সিভারস

@ ক্রিশ্চিয়ন্সিয়ভার্স প্রকৃতপক্ষে এন <2 একটি সুস্পষ্ট উন্নতি, আপনাকে ধন্যবাদ। দ্বিতীয়টি পাশাপাশি কাজ করে, যদিও এটি এই ক্ষেত্রে আমার কিছু সংরক্ষণ করে না। আমি এখনও হাস্কেল শিখছি এবং বুঝতে পারি না যে আমার মতো প্রহরী থাকতে পারে। ধন্যবাদ!
ডিলান মিউস

1

গণিত, 32 27 বাইট

Fibonacci[3Input[]-1]/2-1/2

ক্রেডিট xnor । জংহওয়ান মিনকে 5 টি বাইট সংরক্ষণ করা হয়েছে।


নিশ্চয় ম্যাথামেটিকায় ফিবোনাচি রয়েছে এবং (Fibonacci(3*n+2) - 1)/2সুমি লিখতে বা লিখতে এটি খাটো ?
xnor

@ জংহওয়ানমিন এটি চুরির ঘটনা নয়; এটি OEIS পৃষ্ঠার উল্লেখ করে। এছাড়াও, এটি সম্প্রদায় উইকির প্রার্থী নয়। সম্প্রদায় উইকিস কীভাবে ব্যবহার করা উচিত দেখুন ?
ডেনিস

@ দেবরিচটার আপনার পোস্টটি মুছে ফেলার জন্য দুঃখিত, তবে কথোপকথন করা দরকার ছিল। আপনি যদি এটি মুছে রাখতে চান তবে আমাকে জানান এবং আমি এই কথোপকথনটিকে একটি চ্যাট রুমে সরিয়ে দেব।
ডেনিস

@ ডেনিস এখনও, আমি বিশ্বাস করি যে ভিনসেঞ্জো লাইব্রান্দিকে স্পষ্টভাবে ক্রেডিট দেওয়া উচিত - (দুর্ঘটনাক্রমে আমার শেষ মন্তব্যটি মুছে ফেলা হয়েছে ... এটি কি বাতিল করা যায়?) সম্প্রদায়ের পোস্টের পরামর্শের জন্য, আমি সংশোধন করে দাঁড়িয়েছি।
জংহওয়ান মিন

আমার (* Vincenzo Librandi, Mar 15 2014 *)
অভিপ্রায়টি হ'ল

1

আর, 42 বাইট

অ রিকার্সিভ সমাধান, @rtrunbull দ্বারা তার আগে সমাধান বিপরীতে যেমন এখানে

for(i in 1:scan())F=F+gmp::fibnum(3*i-3);F

ফিবোনাচি সিক্যুয়েন্সের প্রতিটি তৃতীয় মানের সমান সম্পত্তিটি ব্যবহার করে। Fডিফল্টরূপে সংজ্ঞায়িত হওয়া সত্যটিকেও অপব্যবহার করে FALSE=0, মানগুলিতে যোগ করার ভিত্তিতে এটির অনুমতি দেয়।


1

আর, 42 41 বাইট

sum(DescTools::Fibonacci(3*(scan():2-1)))

scan(): nস্টিডিন থেকে নিতে ।

scan():2-1থেকে পূর্ণসংখ্যার উৎপন্ন nকরার 2দ্বারা, হ্রাস 1, ফলনশীল n-1মাধ্যমে 1

3*(scan():2-1) : প্রতি তৃতীয় ফিবোনাচি সংখ্যা সমান হওয়ার সাথে সাথে 3 দ্বারা গুণাও।

DescTools::Fibonacci(3*(scan():2-1)): এই ফিবোনাচি নম্বরগুলি (যেমন 3মাধ্যমে (n-1)*3) ফেরত দিন ।

sum(DescTools::Fibonacci(3*(scan():2-1))) : ফলাফলের সমষ্টি করুন।

পূর্বে, আমি ওইআইএসের সূত্রগুলির একটি ব্যবহার করে এই উদ্দীপনা সমাধান করেছি:

a=function(n)`if`(n<2,0,4*a(n-1)+a(n-2)+2)

আমি recursion ছাড়া :) আপনার bytecount মেলে পরিচালিত
JAD

নিবন্ধন করুন আমি পুনরাবৃত্তিটিও
এলোমেলো

ভালো desctools::fibonacciলাগছে , ঠিক কি করতে পারে numbers::fibonacciনা? কারণ ওই কুয়াশা কিছুটা খাটো হতে হবে।
জেএডি

ওহ কিছু নয়, খুঁজে পেয়েছি। মিষ্টি, আমি যে অন্যান্য প্রয়োগগুলি পেয়েছি সেগুলি একবারে একাধিক সংখ্যা জিজ্ঞাসা করে না support
জেএডি

1
@ জারকো ডাবডেলডাম হ্যাঁ, `` জিএমপি :: ফাইবনাম '' বিভিন্ন ধরণের জিনিস ফেরত দেয় bigz, যা *applyফাংশনগুলির শ্রেণি rawকারণগুলির কারণে টাইপে রূপান্তরিত করে ...
rturnbull


1

পিএইচপি, 73 70 বাইট

for(${0}=1;$i++<$argv[1];$$x=${0}+${1})${$x^=1}&1?$i--:$s+=$$x;echo$s;

চলক চলক প্রদর্শন । চালু). সাথে চালাও -nr

ভাঙ্গন

for(${0}=1;         # init first two fibonaccis (${1}=NULL evaluates to 0 in addition)
                    # the loop will switch between $0 and $1 as target.
    $i++<$argv[1];  # loop until $i reaches input
    $$x=${0}+${1}       # 3. generate next Fibonacci
)
    ${$x^=1}            # 1. toggle index (NULL => 1 => 0 => 1 ...)
    &1?$i--             # 2. if current Fibonacci is odd, undo increment
    :$s+=$$x;           #    else add Fibonacci to sum
echo$s;             # print result

নম্বরগুলি পিএইচপি-তে পুরোপুরি বৈধ পরিবর্তনশীল নাম।
তবে, আক্ষরিক জন্য তাদের ধনুর্বন্ধনী প্রয়োজন; যেমন ${0}, না $0

36 বাইট, ও (1)

<?=(7-$c=2+5**.5)*$c**$argv[1]/20|0;

xnor´s উত্তর বন্দর


0

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

n->fibonacci(3*n-1)\2

\ পূর্ণসংখ্যাফলফল

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