fundo
Quase todo mundo está familiarizado com os números de Fibonacci F(n)
:
0, 1, 1, 2, 3, 5, 8, 13, 21 ...
Estes são formados pela função de recursão F(n) = F(n-1) + F(n-2)
com F(0)=0
e F(1)=1
. A000045
Uma sequência intimamente relacionada são os números de Lucas L(m)
:
2, 1, 3, 4, 7, 11, 18, 29 ...
Estes são formados pela função de recursão L(m) = L(m-1) + L(m-2)
com L(0)=2
e L(1)=1
. A000032
Podemos alternar entre as duas seqüências com base em índices pares / ímpares, com a construção
A(x) = F(x)
se x mod 2 = 0
e de A(x) = L(x)
outra forma. Por exemplo, A(4)
é igual a F(4)
since 4 mod 2 = 0
. Vamos chamar essa seqüência os números Lucas-Nacci , A(x)
:
0, 1, 1, 4, 3, 11, 8, 29, 21, 76 ...
Este pode ser formado pela função recursão A(x) = 3*A(x-2) - A(x-4)
com A(0)=0
, A(1)=1
, A(2)=1
, e A(3)=4
. A005013
Desafio
Com base na entrada n
, imprima a sequência de n+1
números até e incluindo, A(n)
conforme descrito acima. Menos bytes (ou equivalentes de bytes, como no LabVIEW , conforme determinado individualmente no Meta) ganham.
Entrada
Um único inteiro não negativo n
.
Resultado
Uma lista de números que correspondem à subsequência dos números de Lucas-nacci de A(0)
até A(n)
. A lista deve estar em ordem seqüencial, conforme descrito acima.
Regras
- Aplicam-se regras padrão de código de golfe e restrições de brechas .
- Aplicam- se regras de entrada / saída padrão .
- O número da entrada pode estar em qualquer formato adequado: unário ou decimal, lido em STDIN, função ou argumento de linha de comando, etc. - sua escolha.
- A saída pode ser impressa em STDOUT ou retornada como resultado da chamada de função. Se impressos, delimitadores adequados para diferenciar os números devem ser incluídos (separados por espaço, separados por vírgula, etc.).
- Além disso, se a saída para STDOUT, o espaço em branco circundante, a nova linha à direita, etc. forem opcionais.
- Se a entrada for um não inteiro ou um número inteiro negativo, o programa poderá fazer qualquer coisa ou nada, pois o comportamento é indefinido.
Exemplos
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