Die Fibonacci-Sequenz ist hier ziemlich bekannt. Verdammt, es hat sogar einen eigenen Tag. Trotzdem bleiben wir gerne bei unseren Wurzeln 1, 1, ...
(oder ist es das 0, 1, ...
? Wir werden es vielleicht nie erfahren ...). In dieser Herausforderung sind die Regeln gleich, aber anstatt das n
th-Element in der Fibonacci-Sequenz zu erhalten, erhalten Sie das n
th-Element in der Fibonacci-esque-Sequenz, beginnend mit x, y, ...
.
Eingang
Drei ganze Zahlen in beliebiger Reihenfolge. n
ist der Index (0 oder 1 indiziert) des Terms in der Sequenz für Ihre Ausgabe. x
und y
sind die ersten beiden Elemente in der Fibonacci-Sequenz Ihres aktuellen Programmlaufs.
Ausgabe
Das n
te Glied in der Fibonacci - Folge , beginnend mit x
, y
.
Testfälle
(0-indiziert)
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-indiziert)
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
Vorbehalte
Annehmen 0 <= x <= y
.
Bitte beachten Sie Ihre Eingabereihenfolge (muss konstant sein).
[1, 2, 3]
? Ja. Was auch immer Sie brauchen, um 3 ganze Zahlen zu akzeptieren.n,[x,y]
Won
ist eine Zahl undx
undy
sind Zahlen in einer Liste? Das ist aber wahrscheinlich ein bisschen zu flexibel;)Antworten:
Gelee , 3 Bytes
Nimmt x , y und n (0-indiziert) als separate Befehlszeilenargumente in dieser Reihenfolge.
Probieren Sie es online!
Wie es funktioniert
quelle
CJam ,
149 BytesProbieren Sie es online!
Das Eingabeformat ist "xy n". Ich bin immer noch ein Neuling, daher bin ich mir zu 100% sicher, dass es bessere Möglichkeiten gibt, dies zu tun. Aber bitte, anstatt mir zu sagen, dass ich dies tue, versuche nur, mir Hinweise zu geben, damit ich die Antwort selbst finden und bekommen kann besser. Vielen Dank!
quelle
ririri
kann auf 2 Bytes gekürzt werden.fI
kann auf 1 Byte gekürzt werden.Python 2 , 37 Bytes
Probieren Sie es online!
0-indiziert, müssen Sie möglicherweise das Rekursionslimit für anpassen
n≥999
quelle
JavaScript (ES6),
27 bis26 ByteNichts Besonderes hier, nur eine Standard-JS-Fibonacci-Funktion, bei der die Anfangswerte von 0 und 1 entfernt wurden.
Versuch es
quelle
Python 2, 40 Bytes
0-indiziert
Probieren Sie es online
quelle
Haskell , 30 Bytes
Probieren Sie es online! 0-indiziert. Verwenden Sie als
(x#y)n
zB(0#1)5
für das fünfte Element der Originalsequenz.Der wahrscheinlich kürzeste Weg, um die Fibonacci-Sequenz in Haskell zu erhalten, ist
f=0:scanl(+)1f
, eine unendliche Liste zu definieren,f=[0,1,1,2,3,5,8,...]
die die Sequenz enthält. Ersetzen0
und1
mit Argumentenx
undy
ergibt die benutzerdefinierte Sequenz.(f!!)
ist dann eine Funktion, die das n-te Element von zurückgibtf
.quelle
Mathematica, 36 Bytes
Eingang
quelle
##2
anstelle von verwenden#2,#3
.PowerShell , 40 Byte
Probieren Sie es online!
quelle
Brain-Flak , 38 Bytes
Probieren Sie es online!
quelle
Ruby, 27 Bytes
quelle
Gelee , 6 Bytes
Probieren Sie es online!
Erläuterung
quelle
TAESGL , 4 Bytes
1-indiziert
Dolmetscher
Erläuterung
Eingabe übernommen als
n,[x,y]
quelle
Prolog (SWI) , 77 Bytes
Probieren Sie es online!
Begann mit dem Golfen von Leaky Nuns Antwort und kam zu etwas völlig anderem.
Dieser hat eine Regel
(Nᵗʰ, (N+1)ᵗʰ)
in Bezug auf((N-1)ᵗʰ, Nᵗʰ)
und verwendet die Datenbankverwaltung , um 0ᵗʰ- und 1ˢᵗ-Elemente zur Laufzeit zu aktivieren.f(N,X,Y)
bedeutetNᵗʰ
Element istX
und(N+1)ᵗʰ
Element istY
.quelle
Oktave , 24 Bytes
Eingabeformat:
n,[x,y]
.Probieren Sie es online!
quelle
Braingolf , 15 Bytes
_;
wird für die neueste Version von Braingolf nicht mehr benötigt, allerdings ist das ab ~ 5 Minuten her, wäre also nicht konkurrierend.quelle
Python 2 , 112 Bytes
1-indiziert.
Probieren Sie es online!
quelle
MATL , 7 Bytes
Die Ausgabe erfolgt auf 0-Basis.
Probieren Sie es bei MATL Online!
Erläuterung
Lassen Sie die Eingänge bezeichnet werden
n
(Index),a
,b
(Grundmietzeit).quelle
R, 39 Bytes
Eine einfache rekursive Funktion. Komischerweise ist dies kürzer als alles, was ich mir für die reguläre Fibonacci-Sequenz (ohne eingebaute Funktionen) vorstellen kann, da dies nicht
1
beidenx
undy
= P zugewiesen werden mussBerechnet
n+1
die Folgenummern einschließlich der Anfangswerte. Jede Rekursion wird mit berechnetn-1
und gestoppt, wennn==0
. Die niedrigste der beiden Zahlen wird dann zurückgegeben und gibt denn
-ten Wert zurück.quelle
Gleichstrom , 36 Bytes
Probieren Sie es online!
0
-indexiert. Die Eingabe muss im Format erfolgenn x y
.quelle
PHP> = 7.1, 55 Bytes
Online Version
PHP> = 7.1, 73 Bytes
Online Version
quelle
$y=+$x+$x=$y
. Sie können auch nur$n--
anstelle von verwenden$i++<$n
.Common Lisp, 49 Bytes, 0-indiziert
Ich bin ein Lisp Noob, also wäre jeder Tipp dankbar;)
Erläuterung:
quelle
Prolog (SWI) , 85 Bytes
Probieren Sie es online!
0-indiziert.
quelle
br ** nfuck,
3929 BytesDanke an @JoKing für -10!
TIO eignet sich nicht besonders gut dafür (oder für eine BF-Lösung für ein Problem mit Zahlen). Ich empfehle dringend @ Timwi's EsotericIDE (oder die Implementierung von BF selbst).
Nimmt
x
danny
dannn
. 0-indiziert. Nimmt ein ungebundenes oder umwickeltes Band an.Erläuterung
quelle
-1
-indexing".>
am Ende oder tauschen Sie x und y ReihenfolgeC (gcc) , 29 Bytes
Probieren Sie es online!
Diese Implementierung basiert auf 0.
quelle
05AB1E , 9 Bytes
Probieren Sie es online!
Erläuterung
quelle
Lua , 44 Bytes
0-indiziert
Probieren Sie es online!
quelle
Klein , 18 + 3 Bytes
Dies verwendet die
000
TopologieEingabe im Formular übergeben
x y n
.quelle
Axiom,
8857 Bytesdies würde den vorgeschlagenen Test bestehen (0 indiziert)
quelle
Retina , 37 Bytes
Probieren Sie es online!
0-basiert, wird
x y n
durch Leerzeichen getrennt. Berechnet in Unary.quelle
TI-Basic, 32 Bytes
quelle