গল্ফ একটি কাস্টম ফিবোনাচি সিকোয়েন্স


25

ফিবানচি ক্রম এখানে কাছাকাছি একটি মোটামুটি সুপরিচিত জিনিস। হেক, এটির নিজের একটি ট্যাগও রয়েছে। যাইহোক, এই সমস্ত কিছুর জন্য আমরা নিশ্চিত যে আমাদের শিকড়কে আটকে রাখতে চাই 1, 1, ...(বা এটি 0, 1, ...কি আমরা কখনও জানি না ...)। এই চ্যালেঞ্জে, বিধিগুলি একই, তবে nফিবোনাচি সিকোয়েন্সের তম আইটেমটি পাওয়ার পরিবর্তে , আপনি nফিবোনাচি-এস্কে ক্রমটি শুরু করে মঞ্চটি পাবেন x, y, ...

ইনপুট

তিনটি পূর্ণসংখ্যা, আপনি যেভাবেই আদেশ চান। nআপনার আউটপুটের ক্রম অনুসারে পদটির সূচক (0 বা 1 ইনডেক্সড)। xএবং yআপনার বর্তমান প্রোগ্রাম চালানোর ফিবোনাচি ক্রমের প্রথম দুটি আইটেম।

আউটপুট

nফিবানচি ক্রম দিয়ে শুরু ম মেয়াদ x, y

পরীক্ষার মামলা

(0-ইন্ডেক্স)

n   x     y     out
5   0     0     0
6   0     1     8
6   1     1     13
2   5     5     10
10  2     2     178
3   3     10    23
13  2308  4261  1325165
0   0     1     0
1   0     1     1

(1-ইন্ডেক্স)

n   x     y     out
6   0     0     0
7   0     1     8
7   1     1     13
3   5     5     10
11  2     2     178
4   3     10    23
14  2308  4261  1325165
1   0     1     0
2   0     1     1

আদেশ সহকারে

ধরে 0 <= x <= y

আপনার ইনপুট অর্ডার নোট করুন (অবশ্যই ধ্রুবক হতে হবে)।


আমরা কি ইনপুট হিসাবে একটি তালিকা নিতে পারি?
বিড়াল বিড়াল

আপনি কি পছন্দ করেছেন [1, 2, 3]? হ্যাঁ। আপনার 3 টি পূর্ণসংখ্যার গ্রহণ করার দরকার নেই।
স্টিফেন

@StephenS কিভাবে একটি ইনপুট গ্রহণ যেমন সম্পর্কে n,[x,y]যেখানে nএকটি সংখ্যা এবং xএবং yএকটি তালিকাতে সংখ্যার আছে? যদিও এটি সম্ভবত কিছুটা নমনীয় হচ্ছে;)
টম

1
@ CAD97 আমি এগুলি যুক্ত করব, আমি তাদের সম্পর্কে ভুলে গিয়েছিলাম :)
স্টিফেন

উত্তর:


15

জেলি , 3 বাইট

+¡ạ

এই ক্রমে x , y এবং n (0-indexed) পৃথক কমান্ড-লাইন আর্গুমেন্ট হিসাবে গ্রহণ করে।

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

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

+¡ạ  Main link. Left argument: x. Right argument: y. Third argument: n

  ạ  Yield abs(x - y) = y - x, the (-1)-th value of the Lucas sequence.
+¡   Add the quicklink's left and right argument (initially x and y-x), replacing
     the right argument with the left one and the left argument with the result.
     Do this n times and return the final value of the left argument.

11

সিজোম , 14 9 বাইট

l~{_@+}*;

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

ইনপুট ফর্ম্যাটটি "এক্সওয়াই এন"। আমি এটির মধ্যে এখনও নুব, সুতরাং এটি করার আরও ভাল উপায় রয়েছে বলে আমি 100% নিশ্চিত, তবে দয়া করে আমাকে "এটি করুন" বলার পরিবর্তে কেবল আমাকে ইঙ্গিত দেওয়ার চেষ্টা করুন যাতে আমি উত্তরটি নিজে খুঁজে পেতে পারি এবং পেতে পারি উত্তম. ধন্যবাদ!


1
ririri2 বাইট ছোট করা যেতে পারে। fI1 বাইট ছোট করা যেতে পারে।
ডেনিস

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

@ ডেনিস উন্নত! ধন্যবাদ! এবং স্বাগত জন্য ধন্যবাদ।
ফ্রডকিউব


9

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

এখানে অভিনব কিছু নয়, কেবল 0 এবং 1 এর প্রাথমিক মানগুলি সহ একটি স্ট্যান্ডার্ড জেএস ফিবোনাচি ফাংশন।

n=>g=(x,y)=>n--?g(y,x+y):x

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

f=
n=>g=(x,y)=>n--?g(y,x+y):x
o.value=f(i.value=13)(j.value=2308,k.value=4261)
oninput=_=>o.value=f(+i.value)(+j.value,+k.value)
*{font-family:sans-serif;}
input{margin:0 5px 0 0;width:50px;}
#o{width:75px;}
<label for=i>n: </label><input id=i type=number><label for=j>x: </label><input id=j type=number><label for=k>y: </label><input id=k type=number><label for=o>= </label><input id=o>


6

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

0-সূচিযুক্ত
এটি অনলাইনে চেষ্টা করুন

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

হাহা অন্য কিছু উত্তরের বিপরীতে পুনরাবৃত্তি / স্ট্যাক সীমাতে সাপেক্ষে নয়। দুর্দান্ত কৌশল।
শ্রীভাতসারআর

@ শ্রীভাত্সার ধন্যবাদ! তবে পুনরাবৃত্ত ল্যাম্বদা যেভাবেই আমাকে মারধর করে: ডি
ডেড পসসাম

5

হাস্কেল , 30 বাইট

x#y=(f!!)where f=x:scanl(+)y f

এটি অনলাইন চেষ্টা করুন! 0-ইন্ডেক্স। হিসাবে ব্যবহার করুন (x#y)n, যেমন (0#1)5মূল ক্রম পঞ্চম উপাদান জন্য।

হাস্কেলের মধ্যে ফিবোনাচি সিকোয়েন্স পাওয়ার সর্বাধিক সংক্ষিপ্ততম উপায় হ'ল এটি সিকোয়েন্স সহ f=0:scanl(+)1fএকটি অসীম তালিকাটি সংজ্ঞায়িত f=[0,1,1,2,3,5,8,...]করে। প্রতিস্থাপন 0এবং 1যুক্তি সহ xএবং yকাস্টম সিকোয়েন্স উত্পাদন। (f!!)তারপরে এমন একটি ফাংশন যা এর নবম উপাদানটি ফেরত দেয় f


5

গণিত, 36 বাইট

LinearRecurrence[{1,1},{##2},{#+1}]&

ইনপুট

[এন x, y]


1
আপনি ##2পরিবর্তে ব্যবহার করতে পারেন #2,#3
আলেফাল্ফ

খুব সুন্দর! সংশোধন করা হয়েছে!
J42161217





3

TAESGL , 4 বাইট

ēB)Ė

1-ইন্ডেক্স

অনুবাদক

ব্যাখ্যা

ইনপুট হিসাবে নেওয়া n,[x,y]

 ēB)Ė
AēB)     get implicit input "A" Fibonacci numbers where "B" is [x,y]
    Ė    pop the last item in the array

3

প্রোলোগ (এসডাব্লুআই) , 77 বাইট

f(N,Y,Z):-M is N-1,f(M,X,Y),Z is X+Y.
l(N,A,B,X):-asserta(f(0,A,B)),f(N,X,_).

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

লিকি নুনের উত্তর গল্ফ করা শুরু করে সম্পূর্ণ ভিন্ন কিছুতে এসে পৌঁছেছিল।

এটির ক্ষেত্রে একটি নিয়ম (Nᵗʰ, (N+1)ᵗʰ)রয়েছে ((N-1)ᵗʰ, Nᵗʰ)এবং রানটাইম সময় 0ᵗʰ এবং 1ˢᵗ উপাদান যুক্ত করতে ডাটাবেস পরিচালনা ব্যবহার করে

f(N,X,Y)মানে Nᵗʰউপাদান হ'ল Xএবং (N+1)ᵗʰউপাদান হ'ল Y



2

ব্রেনল্ফ , 15 বাইট

VR<2-M[R!+v]R_;

_; ব্রাইংলফের সর্বশেষ সংস্করণে আর দরকার নেই, তবে এটি 5 মিনিট আগে, তাই প্রতিদ্বন্দ্বিতাযোগ্য হবে।



2

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

:"wy+]x

আউটপুট 0-ভিত্তিক।

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

ব্যাখ্যা

ইনপুটগুলি n(সূচী) a, b(প্রাথমিক শর্তাবলী) চিহ্নিত করা যাক ।

:"     % Implicitly input n. Do this n times
       %   At this point in each iteration, the stack contains the two most
       %   recently computed terms of the sequence, say s, t. In the first
       %   iteration the stack is empty, but a, b will be implicitly input
       %   by the next statement
  w    %   Swap. The stack contains t, s
  y    %   Duplicate from below. The stack contains t, s, t
  +    %   Add. The stack contains t, s+t. These are now the new two most
       %   recently comnputed terms
]      % End
x      % Delete (we have computed one term too many). Implicitly display

2

আর, 39 বাইট

f=function(x,y,n)'if'(n,f(y,x+y,n-1),x)

একটি সাধারণ পুনরাবৃত্তি ফাংশন। নিয়মিত ফিবোনাচি সিকোয়েন্স (বিল্ট-ইনগুলি ব্যতীত) আনার জন্য যে পরিমাণে আমি আসতে পারি তার চেয়ে মজাদারভাবে যথেষ্ট এটি যথেষ্ট, কারণ এটি এবং = পি 1উভয়কেই বরাদ্দ করতে হয় না becausexy

n+1প্রাথমিক মানগুলি সহ ক্রমের সংখ্যা গণনা করে । প্রতিটি পুনরাবৃত্তি গণনা করা হয় n-1এবং কখন বন্ধ হয়ে যায় n==0। দুটি সংখ্যার মধ্যে সর্বনিম্নটি ​​ফিরে আসে, তৃতীয় nমানটি প্রদান করে।



2

পিএইচপি> = 7.1, 55 বাইট

for([,$n,$x,$y]=$argv;$n--;$x=$y,$y=$t)$t=$x+$y;echo$x;

অনলাইন সংস্করণ

পিএইচপি> = 7.1, 73 বাইট

for([,$n,$x,$y]=$argv,$r=[$x,$y];$i<$n;)$r[]=$r[+$i]+$r[++$i];echo$r[$n];

অনলাইন সংস্করণ


1
অদ্ভুত পিএইচপি এর মূল্যায়ন আদেশের সুযোগ নিয়ে: $y=+$x+$x=$y। এছাড়াও, আপনি কেবল $n--পরিবর্তে ব্যবহার করতে পারেন $i++<$n
ব্যবহারকারী 63956

2

কমন লিস্প, 49 বাইট, 0-সূচকযুক্ত

(defun fib(n x y)(if(= 0 n)x(fib(1- n)y(+ x y))))

আমি একটি লিস্প নুব তাই কোনও পরামর্শের প্রশংসা করা হবে;)

ব্যাখ্যা:

(defun fib(n x y)                                  | Define a function taking 3 arguments
                 (if(= 0 n)x                       | If n = 0, return x
                            (fib(1- n)y(+ x y))))  | Otherwise, call fib with n-1, y, and x+y

2

প্রোলোগ (এসডাব্লুআই) , 85 বাইট

l(0,X,Y,X).
l(1,X,Y,Y).
l(N,X,Y,C):-M is N-1,P is N-2,l(M,X,Y,A),l(P,X,Y,B),C is A+B.

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

0-ইন্ডেক্স।


আপনি এই উত্তর সম্পাদনা করতে পারেন? যেদিন আপনি এটি পোস্ট করেছেন আমি দুর্ঘটনাক্রমে এটিকে হ্রাস পেয়েছি বলে মনে হচ্ছে।
22

@ এসোলাংফ্রুটটি সম্পন্ন হয়েছে
লিকি নুন

2

বিআর ** এনফাক, 39 29 বাইট

-10-এর জন্য জোকিংকে ধন্যবাদ!

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

টিআইও এর জন্য বিশেষভাবে ভাল কাজ করবে না (বা সংখ্যার সাথে জড়িত কোনও সমস্যার জন্য কোনও বিএফ সমাধানের জন্য)। আমি দৃঢ়ভাবে সুপারিশ @ Timwi এর EsotericIDE (অথবা নিজেকে বি এফ বাস্তবায়ন)।

xতাহলে y, নেয় n। 0-ইন্ডেক্স। আনবাউন্ডেড বা মোড়ানো টেপ ধরে।

ব্যাখ্যা

,<,<,            Take inputs. Tape: [n, y, x]
[                While n:
  > [->+>+<<]      Add y to x, copying it to the next cell along as well. Tape: [n, 0, x+y, y]
  < [>+<-]         Move n over. Tape: [0, n, x+y, y]
  >-               Decrement n.
] >>.            End loop. Print cell 2 to the right (x for n == 0).

আপনি যখন x এবং y সরাতে পারবেন তখন কেন আপনি চলন্ত x এবং y বিরক্ত করবেন? এটি অনলাইনে চেষ্টা করুন
জো কিং

@ জোকিং এটিকে বিবেচনা করেছেন (তবে এটি আমার নিজের থেকেও বেশি) তবে এটি -1কার্যকরভাবে কাজ করে না, যদি না ওপি " ইন-ইনডেক্সিং" না করে।
খুলনায়সথ না'বাড়িয়া

ওহ, >শেষের দিকে কেবল একটি যুক্ত করুন বা এক্স এবং ওয়াই অর্ডারটি পরিবর্তন করুন
জো কিং

@ জোকিং আমার পামটি এখন খুব শক্তভাবে আমার মুখে লেগেছে। ধন্যবাদ!
খুলনায়সথ না'বাড়িয়া

আপনি প্রোগ্রামিং ভাষার নামের দ্বিতীয় শব্দটি না করে কেন "মস্তিষ্ক" সেন্সর করতে বিরক্ত করেছিলেন?
মিল্কিওয়ে 90

2

সি (জিসিসি) , 29 বাইট

f(n,x,y){n=n?f(n-1,y,x+y):x;}

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

এই বাস্তবায়ন 0-ভিত্তিক।


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




1

অ্যাক্সিয়োম, 88 57 বাইট

f(k,x,y)==(repeat(k<=0=>break;c:=y;y:=x+y;x:=c;k:=k-1);x)

এটি প্রস্তাবিত পরীক্ষায় উত্তীর্ণ হবে (0 টি সূচিত)

(14) -> f(5,0,0)
   (14)  0
                                                 Type: NonNegativeInteger
(15) -> f(6,0,1)
   (15)  8
                                                    Type: PositiveInteger
(16) -> f(2,5,5)
   (16)  10
                                                    Type: PositiveInteger
(17) -> f(10,2,2)
   (17)  178
                                                    Type: PositiveInteger
(18) -> f(3,3,10)
   (18)  23
                                                    Type: PositiveInteger
(19) -> f(13,2308,4261)
   (19)  1325165
                                                    Type: PositiveInteger


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