Fibonacci benzeri bir diziyi f k (n) = (f k (n-1) + f k (n-2))% k olarak tanımlarsak , bazı tamsayı k için (burada % modulo operatörüdür), dizi mutlaka döngüsel olacaktır, çünkü (f k (n-1), f k (n-2)) için sadece k 2 farklı değer vardır . Bununla birlikte, bu döngü genellikle tüm olası çift çiftlerini içermez , bu nedenle f k (0) ve f k (1) başlangıç değerlerine bağlı olarak farklı döngüler alabiliriz. Örneğin, k = 2 için, ilk iki değere bağlı olarak aşağıdaki dört seçeneğe sahibiz:
0, 0, 0, 0, 0, 0, 0, 0, 0, ...
0, 1, 1, 0, 1, 1, 0, 1, 1, ...
1, 0, 1, 1, 0, 1, 1, 0, 1, ...
1, 1, 0, 1, 1, 0, 1, 1, 0, ...
Sekansların döngüsel doğası nedeniyle, burada yörüngeler (0) ve (0, 1, 1) olan sadece iki temel olarak farklı sekans vardır . Şimdi k = 3'e bakalım :
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, ...
0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, ...
1, 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, ...
1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, 0, ...
1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, ...
2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, ...
2, 1, 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, ...
2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, ...
Yine, sadece iki farklı yörünge vardır: (0) ve (0, 1, 1, 2, 0, 2, 2, 1) .
Daha yüksek k için daha fazla yörünge alabiliriz, ancak yine de nispeten az sayıda sınıfa gireceklerdir. Örneğin k = 4 dört yörünge (0) , (0,1,1,2,3,1) , (0, 2, 2) , (0, 3, 3, 2, 1, 3) ve k verir = 5 üç yörünge (0) , (0, 1, 1, 2, 3, 0, 3, 3, 1, 4, 0, 4, 4, 3, 2, 0, 2, 2, 4, 1) ve (1, 3, 4, 2) .
Bu görevdeki göreviniz, belirli bir k için dizinin kaç yörünge oluşturduğunu hesaplamaktır . Bu OEIS A015134 . İşte ilk 100 değer ( k = 1'den başlayarak ):
1, 2, 2, 4, 3, 4, 4, 8, 5, 6, 14, 10, 7, 8, 12, 16, 9, 16, 22, 16,
29, 28, 12, 30, 13, 14, 14, 22, 63, 24, 34, 32, 39, 34, 30, 58, 19,
86, 32, 52, 43, 58, 22, 78, 39, 46, 70, 102, 25, 26, 42, 40, 27, 52,
160, 74, 63, 126, 62, 70, 63, 134, 104, 64, 57, 78, 34, 132, 101, 60,
74, 222, 37, 38, 62, 328, 89, 64, 82, 124, 41, 86, 42, 172, 75, 44,
184, 178, 181, 132, 82, 180, 99, 140, 104, 246, 49, 50, 114, 76
K yörüngesinden daha fazlasını veren ilk giriş olan k = 11'i kontrol ettiğinizden emin olun .
kurallar
Size pozitif bir tamsayı k verilir ve A015134 (k) çıktısı almanız gerekir .
Bir program veya işlev yazabilir ve girdi alma ve çıktı sağlama gibi standart yöntemlerden herhangi birini kullanabilirsiniz .
Herhangi bir programlama dili kullanabilirsiniz , ancak bu boşlukların varsayılan olarak yasaklandığını unutmayın .
Bu kod golf , bu yüzden bayt cinsinden ölçülen en kısa geçerli cevap kazanır.