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)=0y 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)=2y 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 = 0y 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+1nú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