La secuencia de Fibonacci es una cosa bastante conocida por aquí. Diablos, incluso tiene su propia etiqueta. Sin embargo, por todo eso, seguro que nos gusta mantenernos en nuestras raíces 1, 1, ...
(¿o no 0, 1, ...
? Puede que nunca lo sepamos ...). En este desafío, las reglas son las mismas, pero en lugar de obtener el n
elemento th en la secuencia de Fibonacci, comenzará con el n
elemento th en la secuencia de estilo Fibonacci x, y, ...
.
Entrada
Tres enteros, en el orden que quieras. n
es el índice (0 o 1 indexado) del término en la secuencia para su salida. x
y y
son los dos primeros elementos en la secuencia de Fibonacci de la ejecución de su programa actual.
Salida
El n
ésimo término de la sucesión de Fibonacci comenzando con x
, y
.
Casos de prueba
(0 indexado)
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 indexado)
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
Advertencias
Asumir 0 <= x <= y
.
Tenga en cuenta su orden de entrada (debe ser constante).
[1, 2, 3]
? Sí. Lo que sea necesario para aceptar 3 enteros.n,[x,y]
cuandon
es un número yx
ey
son números en una lista? Sin embargo, probablemente sea demasiado flexible;)Respuestas:
Jalea , 3 bytes
Toma x , y , yn (indexados a 0) como argumentos separados de la línea de comandos, en ese orden.
Pruébalo en línea!
Cómo funciona
fuente
CJam ,
149 bytesPruébalo en línea!
El formato de entrada es "xy n". Todavía soy un novato en esto, así que estoy 100% seguro de que hay mejores formas de hacerlo, pero por favor, en lugar de decirme "haz esto", trata de darme pistas para que pueda encontrar la respuesta yo mismo y obtener mejor. ¡Gracias!
fuente
ririri
se puede acortar a 2 bytes.fI
se puede acortar a 1 byte.Python 2 , 37 bytes
Pruébalo en línea!
Indexado a 0, es posible que deba ajustar el límite de recursión para
n≥999
fuente
JavaScript (ES6),
2726 bytesNo hay nada lujoso aquí, solo una función estándar de JS Fibonacci con los valores iniciales de 0 y 1 eliminados.
Intentalo
fuente
Python 2, 40 bytes
0 indexado
Pruébelo en línea
fuente
Haskell , 30 bytes
Pruébalo en línea! 0 indexado. Use como
(x#y)n
, por ejemplo,(0#1)5
para el quinto elemento de la secuencia original.La forma más corta más probable de obtener la secuencia de Fibonacci en Haskell es
f=0:scanl(+)1f
, que define una lista infinita quef=[0,1,1,2,3,5,8,...]
contiene la secuencia. Reemplazar0
y1
con argumentosx
yy
produce la secuencia personalizada.(f!!)
es entonces una función que devuelve el enésimo elemento def
.fuente
Mathematica, 36 bytes
entrada
fuente
##2
lugar de#2,#3
.PowerShell , 40 bytes
Pruébalo en línea!
fuente
Brain-Flak , 38 bytes
Pruébalo en línea!
fuente
Rubí, 27 bytes
fuente
Jalea , 6 bytes
Pruébalo en línea!
Explicación
fuente
TAESGL , 4 bytes
1 indexado
Interprete
Explicación
Entrada tomada como
n,[x,y]
fuente
Prólogo (SWI) , 77 bytes
Pruébalo en línea!
Comenzó jugando al golf la respuesta de Leaky Nun y llegó a algo completamente diferente.
Este tiene una regla
(Nᵗʰ, (N+1)ᵗʰ)
en términos de((N-1)ᵗʰ, Nᵗʰ)
y usa la administración de bases de datos para afirmar elementos 0ᵗʰ y 1ˢᵗ en tiempo de ejecución.f(N,X,Y)
significaNᵗʰ
elemento esX
y(N+1)ᵗʰ
elemento esY
.fuente
Octava , 24 bytes
Formato de entrada:
n,[x,y]
.Pruébalo en línea!
fuente
Braingolf , 15 bytes
_;
ya no es necesario en la última versión de Braingolf, sin embargo, eso fue hace unos 5 minutos, por lo que no competiría.fuente
Python 2 , 112 bytes
1 indexado.
Pruébalo en línea!
fuente
MATL , 7 bytes
La salida está basada en 0.
¡Pruébalo en MATL Online!
Explicación
Dejar que el denotarán entradas
n
(índice),a
,b
(condiciones iniciales).fuente
R, 39 bytes
Una simple función recursiva. Curiosamente, esto es más corto que cualquier cosa que se me ocurra para la secuencia regular de Fibonacci (sin elementos integrados), porque esto no tiene que asignarse
1
a ambosx
yy
= PCalcula los
n+1
números de la secuencia, incluidos los valores iniciales. Cada recursión se calcula conn-1
y se detiene cuandon==0
. Luego se devuelve el menor de los dos números, devolviendo eln
valor -th.fuente
cc , 36 bytes
Pruébalo en línea!
0
-indexado. La entrada debe estar en el formaton x y
.fuente
PHP> = 7.1, 55 bytes
Versión en línea
PHP> = 7.1, 73 bytes
Versión en línea
fuente
$y=+$x+$x=$y
. Además, puede usar solo en$n--
lugar de$i++<$n
.Lisp común, 49 bytes, indexado 0
Soy un novato de Lisp, por lo que cualquier consejo sería apreciado;)
Explicación:
fuente
Prólogo (SWI) , 85 bytes
Pruébalo en línea!
0 indexado.
fuente
br ** nfuck,
3929 bytes¡Gracias a @JoKing por -10!
TIO no funcionará particularmente bien para esto (o para cualquier solución BF a un problema que involucra números). Recomiendo encarecidamente EsotericIDE de @ Timwi (o implementar BF usted mismo).
Toma
x
, entoncesy
, entoncesn
. 0 indexado. Asume una cinta sin límites o envolvente.Explicación
fuente
-1
indexación".>
al final o cambie la orden x e yC (gcc) , 29 bytes
Pruébalo en línea!
Esta implementación está basada en 0.
fuente
05AB1E , 9 bytes
Pruébalo en línea!
Explicación
fuente
Lua , 44 bytes
0-indexado
Pruébalo en línea!
fuente
Klein , 18 + 3 bytes
Esto usa la
000
topologíaPase de entrada en el formulario
x y n
.fuente
Axioma,
8857 bytesesto pasaría la prueba propuesta (0 indexado)
fuente
Retina , 37 bytes
Pruébalo en línea!
Basado en 0, toma
x y n
separado por espacio. Calcula en unario.fuente
TI-Basic, 32 bytes
fuente