Ciąg Fibonacciego jest dość dobrze znana rzecz tutaj. Cholera, ma nawet swój własny tag. Mimo to z pewnością lubimy trzymać się naszych korzeni 1, 1, ...
(a może tak 0, 1, ...
? Być może nigdy się nie dowiemy ...). W tym wyzwaniu zasady są takie same, ale zamiast dostać ten n
element w sekwencji Fibonacciego, otrzymasz ten n
element w sekwencji Fibonacciego od x, y, ...
.
Wkład
Trzy liczby całkowite, w dowolnej kolejności. n
jest indeksem (indeksowanym 0 lub 1) terminu w sekwencji dla danych wyjściowych. x
i y
są pierwszymi dwoma elementami w sekwencji Fibonacciego w bieżącym programie.
Wydajność
n
P określenie w ciągu Fibonacciego wychodząc z x
, y
.
Przypadki testowe
(0-indeksowane)
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-indeksowany)
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
Ostrzeżenia
Załóżmy 0 <= x <= y
.
Zwróć uwagę na kolejność wprowadzania (musi być stała).
[1, 2, 3]
? Tak. Cokolwiek potrzebujesz, aby zaakceptować 3 liczby całkowite.n,[x,y]
gdzien
jest liczba ix
czyy
liczby są na liście? Prawdopodobnie jest to jednak zbyt elastyczne;)Odpowiedzi:
Galaretka , 3 bajty
Takes x, y, and n (0-indexed) as separate command-line arguments, in that order.
Try it online!
How it works
źródło
CJam,
149 bytesTry it online!
Input format is "x y n". I'm still a noob at this, so I'm 100% sure there are better ways to do this, but please instead of telling me "do this" try to only give me hints so that I can find the answer myself and get better. Thanks!
źródło
ririri
can be shortened to 2 bytes.fI
can be shortened to 1 byte.Python 2, 37 bytes
Try it online!
0-indexed, you may need to adjust the recursion limit for
n≥999
źródło
JavaScript (ES6),
2726 bytesNothing fancy here, just a standard JS Fibonacci function with the initial values of 0 & 1 removed.
Try it
źródło
Python 2, 40 bytes
0-indexed
Try it online
źródło
Haskell, 30 bytes
Try it online! 0-indexed. Use as
(x#y)n
, e.g.(0#1)5
for the fifth element of the original sequence.The most likely shortest way to get the Fibonacci sequence in Haskell is
f=0:scanl(+)1f
, which defines an infinite listf=[0,1,1,2,3,5,8,...]
containing the sequence. Replacing0
and1
with argumentsx
andy
yields the custom sequence.(f!!)
is then a function returning the nth element off
.źródło
Mathematica, 36 bytes
input
źródło
##2
instead of#2,#3
.PowerShell, 40 bytes
Try it online!
źródło
Brain-Flak, 38 bytes
Try it online!
źródło
Ruby, 27 bytes
źródło
Jelly, 6 bytes
Try it online!
Explanation
źródło
TAESGL, 4 bytes
1-indexed
Interpreter
Explanation
Input taken as
n,[x,y]
źródło
Prolog (SWI), 77 bytes
Try it online!
Started off golfing Leaky Nun's answer and arrived at something completely different.
This one has a rule for
(Nᵗʰ, (N+1)ᵗʰ)
in terms of((N-1)ᵗʰ, Nᵗʰ)
and uses database management to assert 0ᵗʰ and 1ˢᵗ elements at runtime.f(N,X,Y)
meansNᵗʰ
element isX
and(N+1)ᵗʰ
element isY
.źródło
Octave, 24 bytes
Input format:
n,[x,y]
.Try it online!
źródło
Braingolf, 15 bytes
_;
is no longer needed on the latest version of Braingolf, however that's as of ~5 minutes ago, so would be non-competing.źródło
Python 2, 112 bytes
1-indexed.
Try it online!
źródło
MATL, 7 bytes
Output is 0-based.
Try it at MATL Online!
Explanation
Let the inputs be denoted
n
(index),a
,b
(initial terms).źródło
R, 39 bytes
A simple recursive function. Funnily enough this is shorter than anything I can come up with for the regular Fibonacci sequence (without built-ins), because this doesn't have to assign
1
to bothx
andy
=PCalculates
n+1
numbers of the sequence, including the initial values. Each recursion is calculates withn-1
and stopped whenn==0
. The lowest of the two numbers is then returned, giving back then
-th value.źródło
dc, 36 bytes
Try it online!
0
-indexed. Input must be in the formatn x y
.źródło
PHP>=7.1, 55 Bytes
Online Version
PHP>=7.1, 73 Bytes
Online Version
źródło
$y=+$x+$x=$y
. Also, you can use just$n--
instead of$i++<$n
.Common Lisp, 49 Bytes, 0-indexed
I'm a Lisp noob so any tips would be appreciated ;)
Explanation:
źródło
Prolog (SWI), 85 bytes
Try it online!
0-indexed.
źródło
br**nfuck,
3929 bytesThanks to @JoKing for -10!
TIO won't work particularly well for this (or for any BF solution to a problem involving numbers). I strongly suggest @Timwi's EsotericIDE (or implementing BF yourself).
Takes
x
, theny
, thenn
. 0-indexed. Assumes an unbounded or wrapping tape.Explanation
źródło
-1
-indexing".>
to the end or swap x and y orderC (gcc), 29 bytes
Try it online!
This implementation is 0-based.
źródło
05AB1E, 9 bytes
Try it online!
Explanation
źródło
Lua, 44 bytes
0-Indexed
Try it online!
źródło
Klein, 18 + 3 bytes
This uses the
000
topologyPass input in the form
x y n
.źródło
Axiom,
8857 bytesthis would pass the test proposed (0 indexed)
źródło
Retina, 37 bytes
Try it online!
0-based, takes
x y n
separated by space. Calculates in unary.źródło
TI-Basic, 32 bytes
źródło