गोल्फ एक कस्टम फाइबोनैचि अनुक्रम


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

कृपया अपना इनपुट ऑर्डर नोट करें (स्थिर होना चाहिए)।


क्या हम एक सूची को इनपुट के रूप में ले सकते हैं?
बिजनेस कैट

@BusinessCat आप की तरह मतलब है [1, 2, 3]? हाँ। जो भी आपको 3 पूर्णांक स्वीकार करने की आवश्यकता है।
स्टीफन

@StephenS कैसे एक इनपुट लेने के रूप में के बारे में n,[x,y]जहां nएक संख्या है और xऔर yएक सूची में नंबर दिए गए हैं? वह शायद थोड़ा बहुत लचीला है;)
टॉम

1
@ CAD97 मैं उन्हें जोड़ूंगा, मैं उनके बारे में भूल गया था :)
स्टीफन

जवाबों:


15

जेली , 3 बाइट्स

+¡ạ

उस क्रम में x , y और n (0-अनुक्रमित) को अलग-अलग कमांड-लाइन तर्क के रूप में लेता है ।

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

+¡ạ  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

CJam , 14 9 बाइट्स

l~{_@+}*;

इसे ऑनलाइन आज़माएं!

इनपुट प्रारूप "xy n" है। मैं अभी भी इस पर एक noob हूँ, इसलिए मैं 100% यकीन है कि ऐसा करने के लिए बेहतर तरीके हैं, लेकिन कृपया मुझे यह बताने के बजाय "यह करें" केवल मुझे संकेत देने की कोशिश करें ताकि मैं खुद ही उत्तर पा सकूं और प्राप्त कर सकूं बेहतर। धन्यवाद!


1
ririri2 बाइट्स को छोटा किया जा सकता है। fI1 बाइट को छोटा किया जा सकता है।
डेनिस

6
PPCG में आपका स्वागत है!
मार्टिन एंडर

@ डेनिस में सुधार! धन्यवाद! और स्वागत के लिए धन्यवाद।
फ्रॉडक्यूब


9

जावास्क्रिप्ट (ईएस 6), 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

Haha कुछ अन्य उत्तरों के विपरीत एक पुनरावृत्ति / स्टैक सीमा के अधीन नहीं है। अच्छी चाल।
श्रीवत्सआर

@ श्रीवत्सआर धन्यवाद! लेकिन पुनरावर्ती लंबोदर मुझे वैसे भी मारता है: डी
डेड पॉसम

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!!)उसके बाद nth तत्व को लौटाने वाला एक कार्य है f


5

गणितज्ञ, 36 बाइट्स

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

इनपुट

[N, एक्स, वाई]


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)ᵗʰ)कि रनटाइम के दौरान 0ˢᵗ और 1 at तत्वों का दावा करने के लिए डेटाबेस प्रबंधन((N-1)ᵗʰ, Nᵗʰ) का उपयोग करता है।

f(N,X,Y)Nᵗʰतत्व का अर्थ है Xऔर (N+1)ᵗʰतत्व है Y



2

ब्रिंगोल्फ , 15 बाइट्स

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

_; Braingolf के नवीनतम संस्करण की अब आवश्यकता नहीं है, हालांकि यह ~ 5 मिनट पहले है, इसलिए गैर-प्रतिस्पर्धा होगी।



2

MATL , 7 बाइट्स

:"wy+]x

आउटपुट 0-आधारित है।

MATL ऑनलाइन पर यह कोशिश करो !

व्याख्या

इनपुट्स को चिह्नित 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दोनों xऔर y= P को असाइन नहीं करना है

n+1प्रारंभिक मान सहित अनुक्रम की संख्याओं की गणना करता है। प्रत्येक पुनरावृत्ति की गणना की जाती है n-1और कब बंद कर दिया जाता है n==0। दो संख्याओं में से सबसे कम को वापस लौटा दिया जाता है, जो n-th मान को वापस देता है ।



2

PHP> = 7.1, 55 बाइट्स

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

ऑनलाइन संस्करण

PHP> = 7.1, 73 बाइट्स

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

ऑनलाइन संस्करण


1
अजीब PHP के मूल्यांकन आदेश का लाभ उठाते हुए $y=+$x+$x=$y:। इसके अलावा, आप के $n--बजाय बस का उपयोग कर सकते हैं $i++<$n
user63956

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 अनुक्रमित।


क्या आप इस उत्तर को संपादित कर सकते हैं? मुझे लगता है कि आपने जिस दिन इसे पोस्ट किया था, मैंने इसे गलती से कम कर दिया।
२२:१ol को

@EsolangingFruit किया गया
लीक नून

2

br ** nfuck, 39 29 बाइट्स

@JoKing के लिए धन्यवाद -10!

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

TIO इसके लिए विशेष रूप से अच्छी तरह से काम नहीं करेगा (या संख्याओं से संबंधित समस्या के लिए किसी BF समाधान के लिए)। मैं दृढ़ता से @ टिमवी के एसोटेरिकाइड (या बीएफ को स्वयं लागू करने) का सुझाव देता हूं ।

लेता है 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).

जब आप बस n को स्थानांतरित कर सकते हैं तो आप x और y को स्थानांतरित करने में क्यों परेशान होते हैं? इसे ऑनलाइन आज़माएँ
जो किंग

@JoKing ने माना कि (लेकिन अब अपने दम पर), लेकिन यह तब तक काम नहीं करता, जब तक कि ओपी " -1-इंडेक्सिंग" की अनुमति नहीं देता ।
खुलद्रेस्ठे न'बरिया

ओह, बस >अंत में एक जोड़ें या एक्स और वाई ऑर्डर स्वैप करें
जो किंग

@ जॉइंग मेरी हथेली ने अभी-अभी मेरे चेहरे पर काफी जोर से प्रहार किया। धन्यवाद!
खुल्द्रेसैथ न'बरिया

आपने "मस्तिष्क" को सेंसर करने की जहमत क्यों उठाई लेकिन प्रोग्रामिंग भाषा के नाम का दूसरा शब्द नहीं?
मिल्कीवेय 90

2

सी (जीसीसी) , 29 बाइट्स

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

इसे ऑनलाइन आज़माएं!

यह कार्यान्वयन 0-आधारित है।


अच्छा लगा, और स्वागत है! यहाँ परीक्षण के लिए एक प्रारंभिक टीआईओ सेटअप है, क्या आपको इसका उपयोग करने के लिए चुनना चाहिए।
खुल्द्रेसथ ना'बरिया




1

Axiom, 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


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.