Contexte
Presque tout le monde connaît les chiffres de Fibonacci F(n)
:
0, 1, 1, 2, 3, 5, 8, 13, 21 ...
Celles-ci sont formées par la fonction de récursivité F(n) = F(n-1) + F(n-2)
avec F(0)=0
et F(1)=1
. A000045
Une séquence étroitement liée est le nombre de Lucas L(m)
:
2, 1, 3, 4, 7, 11, 18, 29 ...
Celles-ci sont formées par la fonction de récursivité L(m) = L(m-1) + L(m-2)
avec L(0)=2
et L(1)=1
. A000032
Nous pouvons alterner entre les deux séquences basées sur des indices pairs / impairs, avec la construction
A(x) = F(x)
si x mod 2 = 0
et A(x) = L(x)
sinon. Par exemple, A(4)
est égal à F(4)
depuis 4 mod 2 = 0
. Nous appellerons cette séquence les numéros Lucas-Nacci , A(x)
:
0, 1, 1, 4, 3, 11, 8, 29, 21, 76 ...
Cela peut être formé par la fonction récursive A(x) = 3*A(x-2) - A(x-4)
avec A(0)=0
, A(1)=1
, A(2)=1
et A(3)=4
. A005013
Défi
Étant donné l'entrée n
, sortez la séquence de n+1
nombres jusqu'à et y compris A(n)
comme décrit ci-dessus. Le moins d'octets (ou équivalents d'octets, comme pour LabVIEW , tel que déterminé individuellement sur Meta) gagne.
Contribution
Un seul entier non négatif n
.
Production
Une liste de nombres qui correspondent à la sous-séquence des nombres de Lucas-nacci de A(0)
à A(n)
. La liste doit être en ordre séquentiel comme décrit ci-dessus.
Règles
- Les règles de code-golf standard et les restrictions contre les échappatoires s'appliquent.
- Les règles d'entrée / sortie standard s'appliquent.
- Le numéro d'entrée peut être dans n'importe quel format approprié: unaire ou décimal, lu depuis STDIN, fonction ou argument de ligne de commande, etc. - votre choix.
- La sortie peut être imprimée sur STDOUT ou renvoyée à la suite de l'appel de fonction. S'ils sont imprimés, des délimiteurs appropriés pour différencier les nombres doivent être inclus (séparés par des espaces, séparés par des virgules, etc.).
- De plus, si la sortie vers STDOUT, les espaces blancs environnants, les retours à la ligne de fin, etc. sont tous facultatifs.
- Si l'entrée est un entier non ou un entier négatif, le programme peut faire n'importe quoi ou rien, car le comportement n'est pas défini.
Exemples
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