Nếu chúng ta định nghĩa một chuỗi giống như Fibonacci là f k (n) = (f k (n-1) + f k (n-2))% k , đối với một số nguyên k (trong đó % là toán tử modulo), chuỗi sẽ nhất thiết phải theo chu kỳ, vì chỉ có k 2 giá trị khác nhau cho (f k (n-1), f k (n-2)) . Tuy nhiên, chu trình này thường không bao gồm tất cả các cặp giá trị có thể, do đó tùy thuộc vào hai giá trị bắt đầu f k (0) và f k (1) , chúng ta có thể có các chu kỳ khác nhau. Ví dụ: với k = 2, chúng tôi có bốn khả năng sau, tùy thuộc vào hai giá trị đầu tiên:
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, ...
Do tính chất tuần hoàn của các trình tự, thực sự chỉ có hai trình tự khác nhau cơ bản ở đây, với quỹ đạo (0) và (0, 1, 1) . Hãy xem k = 3 :
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, ...
Một lần nữa, chỉ có hai quỹ đạo khác nhau: (0) và (0, 1, 1, 2, 0, 2, 2, 1) .
Đối với k cao hơn, chúng ta có thể nhận được nhiều quỹ đạo hơn, nhưng chúng vẫn sẽ rơi vào một số lượng nhỏ các lớp tương đối. Ví dụ k = 4 mang lại bốn quỹ đạo (0) , (0,1,1,2,3,1) , (0, 2, 2) , (0, 3, 3, 2, 1, 3) và k = 5 ba quỹ đạo (0) , (0, 1, 1, 2, 3, 0, 3, 3, 1, 4, 0, 4, 4, 3, 2, 0, 2, 2, 4, 1) và (1, 3, 4, 2) .
Nhiệm vụ của bạn trong thử thách này là tính toán số lượng quỹ đạo mà chuỗi tạo ra cho một k cho trước . Đây là OEIS A015134 . Dưới đây là 100 giá trị đầu tiên (bắt đầu từ k = 1 ):
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
Đảm bảo kiểm tra k = 11 , đây là đầu vào đầu tiên mang lại nhiều hơn k quỹ đạo.
Quy tắc
Bạn được cung cấp một số nguyên dương k và sẽ xuất A015134 (k) .
Bạn có thể viết một chương trình hoặc một chức năng và sử dụng bất kỳ phương pháp tiêu chuẩn nào để nhận đầu vào và cung cấp đầu ra.
Bạn có thể sử dụng bất kỳ ngôn ngữ lập trình nào , nhưng lưu ý rằng các lỗ hổng này bị cấm theo mặc định.
Đây là môn đánh gôn , vì vậy câu trả lời hợp lệ ngắn nhất - được đo bằng byte - thắng.