Hintergrund
Fast jeder kennt die Fibonacci-Zahlen F(n) :
0, 1, 1, 2, 3, 5, 8, 13, 21 ...
Diese werden durch die Rekursionsfunktion F(n) = F(n-1) + F(n-2)mit F(0)=0und gebildet F(1)=1. A000045
Eine eng verwandte Folge sind die Lucas-Zahlen L(m) :
2, 1, 3, 4, 7, 11, 18, 29 ...
Diese werden durch die Rekursionsfunktion L(m) = L(m-1) + L(m-2)mit L(0)=2und gebildet L(1)=1. A000032
Wir können zwischen den beiden Sequenzen basierend auf geraden / ungeraden Indizes mit der Konstruktion wechseln,
A(x) = F(x)wenn x mod 2 = 0und A(x) = L(x)sonst. Zum Beispiel A(4)ist gleich F(4)da 4 mod 2 = 0. Wir werden diese Sequenz rufen die Lucas-Nacci Zahlen , A(x):
0, 1, 1, 4, 3, 11, 8, 29, 21, 76 ...
Dies kann durch die Rekursion Funktion gebildet werden , A(x) = 3*A(x-2) - A(x-4)mit A(0)=0, A(1)=1, A(2)=1, und A(3)=4. A005013
Herausforderung
Geben Sie bei gegebener Eingabe ndie Zahlenfolge n+1bis einschließlich A(n)wie oben beschrieben aus. Es werden nur wenige Bytes (oder Byte-Äquivalente, z. B. für LabVIEW , die individuell auf Meta festgelegt wurden) gewonnen.
Eingang
Eine einzelne nicht negative Ganzzahl n.
Ausgabe
Eine Liste von Zahlen, die der Folge von Lucas-Nacci-Zahlen von A(0)bis entsprechen A(n). Die Liste muss in der oben beschriebenen Reihenfolge vorliegen.
Regeln
- Es gelten die Standardregeln für Code-Golf und Lückenbeschränkungen .
- Es gelten die Standard-Ein- / Ausgaberegeln .
- Die eingegebene Nummer kann in einem beliebigen geeigneten Format vorliegen: unär oder dezimal, gelesen von STDIN, Funktion oder Befehlszeilenargument usw. - Sie haben die Wahl.
- Die Ausgabe kann auf STDOUT gedruckt oder als Ergebnis des Funktionsaufrufs zurückgegeben werden. Wenn gedruckt, müssen geeignete Trennzeichen zur Unterscheidung der Zahlen enthalten sein (durch Leerzeichen, durch Kommas getrennt usw.).
- Bei der Ausgabe auf STDOUT sind außerdem umgebende Leerzeichen, abschließende Zeilenumbrüche usw. optional.
- Wenn die Eingabe eine Nicht-Ganzzahl oder eine negative Ganzzahl ist, kann das Programm alles oder nichts tun, da das Verhalten undefiniert ist.
Beispiele
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