バックグラウンド
ほとんどの人はフィボナッチ数に 精通していますF(n)
:
0、1、1、2、3、5、8、13、21 ...
これらは、再帰関数によって形成されているF(n) = F(n-1) + F(n-2)
とF(0)=0
してF(1)=1
。A000045
密接に関連するシーケンスはルーカス番号 L(m)
です:
2、1、3、4、7、11、18、29 ...
これらは、再帰関数によって形成されているL(m) = L(m-1) + L(m-2)
とL(0)=2
してL(1)=1
。A000032
我々は、構造と、偶数/奇数インデックスに基づいて、2つの配列の間で交互することができる
A(x) = F(x)
場合x mod 2 = 0
とA(x) = L(x)
そうでありません。たとえば、A(4)
はF(4)
since と等しい4 mod 2 = 0
です。私たちは、このシーケンスを呼ぶだろうルーカス・nacci番号、A(x)
:
0、1、1、4、3、11、8、29、21、76 ...
これは、再帰関数を用いて形成することができるA(x) = 3*A(x-2) - A(x-4)
とともにA(0)=0
、A(1)=1
、A(2)=1
、とA(3)=4
。A005013
チャレンジ
inputが与えられるとn
、上記のようn+1
に、それを含む一連の数値を出力しますA(n)
。最少バイト(または、Metaで個別に決定される、LabVIEWなどのバイト相当)が勝ちます。
入力
単一の非負整数n
。
出力
数字のリストからルーカス- nacci数のサブシーケンスに対応するようA(0)
にA(n)
。上記のように、リストは順番に並んでいる必要があります。
ルール
- 標準のコードゴルフ規則と抜け穴の制限が適用されます。
- 標準の入出力ルールが適用されます。
- 入力番号は、単項または10進数、STDINからの読み取り、関数またはコマンドライン引数など、任意の適切な形式にすることができます-選択。
- 出力は、STDOUTに出力するか、関数呼び出しの結果として返すことができます。印刷する場合は、数字を区別するための適切な区切り文字を含める必要があります(スペース区切り、コンマ区切りなど)。
- さらに、STDOUTへの出力の場合、周囲の空白、末尾の改行などはすべてオプションです。
- 入力が非整数または負の整数である場合、動作は定義されていないため、プログラムは何でも実行できます。
例
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