Antecedentes
Casi todos están familiarizados con los números de Fibonacci F(n)
:
0, 1, 1, 2, 3, 5, 8, 13, 21 ...
Estos están formados por la función de recursión F(n) = F(n-1) + F(n-2)
con F(0)=0
y F(1)=1
. A000045
Una secuencia estrechamente relacionada son los números de Lucas L(m)
:
2, 1, 3, 4, 7, 11, 18, 29 ...
Estos están formados por la función de recursión L(m) = L(m-1) + L(m-2)
con L(0)=2
y L(1)=1
. A000032
Podemos alternar entre las dos secuencias en función de índices pares / impares, con la construcción
A(x) = F(x)
si x mod 2 = 0
y de lo A(x) = L(x)
contrario. Por ejemplo, A(4)
es igual a F(4)
desde 4 mod 2 = 0
. Vamos a llamar a esta secuencia de los números Lucas-NACCI , A(x)
:
0, 1, 1, 4, 3, 11, 8, 29, 21, 76 ...
Esto puede estar formado por la función de recursión A(x) = 3*A(x-2) - A(x-4)
con A(0)=0
, A(1)=1
, A(2)=1
, y A(3)=4
. A005013
Desafío
Dada entrada n
, salida de la secuencia de n+1
números hasta e incluyendo A(n)
como se describe anteriormente. Pocos bytes (o equivalentes de bytes, como para LabVIEW , como se determina individualmente en Meta) gana.
Entrada
Un solo entero no negativo n
.
Salida
Una lista de números que corresponden a la subsecuencia de números de Lucas-nacci de A(0)
a A(n)
. La lista debe estar en orden secuencial como se describió anteriormente.
Reglas
- Se aplican las reglas estándar de código de golf y las restricciones de escapatoria .
- Se aplican las reglas estándar de entrada / salida .
- El número de entrada puede estar en cualquier formato adecuado: unario o decimal, leído desde STDIN, función o argumento de línea de comando, etc. - usted elige.
- La salida puede imprimirse en STDOUT o devolverse como resultado de la llamada a la función. Si se imprimen, se deben incluir delimitadores adecuados para diferenciar los números (separados por espacios, separados por comas, etc.).
- Además, si la salida a STDOUT, los espacios en blanco circundantes, la nueva línea final, etc., son opcionales.
- Si la entrada es un número entero no negativo o entero, el programa puede hacer cualquier cosa o nada, ya que el comportamiento no está definido.
Ejemplos
Input -> Output
0 -> 0
5 -> 0, 1, 1, 4, 3, 11
18 -> 0, 1, 1, 4, 3, 11, 8, 29, 21, 76, 55, 199, 144, 521, 377, 1364, 987, 3571, 2584