Latar Belakang
Sebagian besar orang akrab dengan angka Fibonacci F(n) :
0, 1, 1, 2, 3, 5, 8, 13, 21 ...
Ini dibentuk oleh fungsi rekursi F(n) = F(n-1) + F(n-2)dengan F(0)=0dan F(1)=1. A000045
Urutan yang terkait erat adalah angka Lucas L(m) :
2, 1, 3, 4, 7, 11, 18, 29 ...
Ini dibentuk oleh fungsi rekursi L(m) = L(m-1) + L(m-2)dengan L(0)=2dan L(1)=1. A000032
Kita dapat bergantian antara dua urutan berdasarkan indeks genap / ganjil, dengan konstruksi
A(x) = F(x)jika x mod 2 = 0dan A(x) = L(x)sebaliknya. Misalnya, A(4)sama dengan F(4)sejak 4 mod 2 = 0. Kami akan memanggil urutan ini Nomor Lucas-nacci , A(x):
0, 1, 1, 4, 3, 11, 8, 29, 21, 76 ...
Hal ini dapat dibentuk oleh fungsi rekursi A(x) = 3*A(x-2) - A(x-4)dengan A(0)=0, A(1)=1, A(2)=1, dan A(3)=4. A005013
Tantangan
Input yang diberikan n, output urutan n+1angka hingga dan termasuk A(n)seperti yang dijelaskan di atas. Bytes paling sedikit (atau byte-setara, seperti untuk LabVIEW , sebagaimana ditentukan secara individual pada Meta) menang.
Memasukkan
Bilangan bulat non-negatif tunggal n.
Keluaran
Daftar nomor yang sesuai dengan urutan nomor Lucas-nacci dari A(0)hingga A(n). Daftar harus berurutan seperti dijelaskan di atas.
Aturan
- Aturan standar kode golf dan pembatasan lubang berlaku.
- Aturan input / output standar berlaku.
- Nomor input dapat dalam format yang sesuai: unary atau desimal, baca dari STDIN, argumen fungsi atau baris perintah, dll. - pilihan Anda.
- Output dapat dicetak ke STDOUT atau dikembalikan sebagai hasil dari panggilan fungsi. Jika dicetak, pembatas yang sesuai untuk membedakan angka harus dimasukkan (dipisahkan spasi, dipisahkan koma, dll.).
- Selain itu, jika output ke STDOUT, spasi putih di sekitar, trailing newline, dll. Semuanya opsional.
- Jika inputnya adalah non-integer atau integer negatif, program dapat melakukan apa saja atau tidak sama sekali, karena perilaku tidak terdefinisi.
Contohnya
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