หากเรากำหนดลำดับ Fibonacci-like เป็นf k (n) = (f k (n-1) + f k (n-2))% k , สำหรับจำนวนเต็มkจำนวนหนึ่ง(โดยที่%คือตัวดำเนินการโมดูโล), ลำดับ จำเป็นจะต้องเป็นวงกลมเพราะมีเพียงk 2ค่าที่แตกต่างกันสำหรับ(ฉk (n-1), F k (n-2)) อย่างไรก็ตามรอบนี้มักจะไม่รวมค่าที่เป็นไปได้ทั้งหมดดังนั้นขึ้นอยู่กับค่าเริ่มต้นสองค่าf k (0)และf k (1)เราอาจได้รับรอบที่แตกต่างกัน ตัวอย่างเช่นสำหรับk = 2เรามีความเป็นไปได้สี่อย่างดังต่อไปนี้ขึ้นอยู่กับค่าสองค่าแรก:
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, ...
เนื่องจากวงจรธรรมชาติของลำดับที่มีจริงๆเพียงสองลำดับที่แตกต่างกันที่นี่มีวงโคจร(0)และ(0, 1, 1) ลองดู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, ...
อีกครั้งมีเพียงสองวงโคจรที่แตกต่างกัน: (0)และ(0, 1, 1, 2, 0, 2, 2, 1)
สำหรับk ที่สูงกว่าเราอาจได้รับวงโคจรมากขึ้น แต่พวกมันจะยังคงอยู่ในชั้นเรียนที่มีจำนวนน้อย ตัวอย่างเช่นk = 4ให้ผลสี่วงโคจร(0) , (0,1,1,2,3,1) , (0, 2, 2) , (0, 3, 3, 2, 1, 3)และk = 5วงโคจรทั้งสาม(0) , (0, 1, 1, 2, 3, 0, 3, 3, 1, 4, 0, 4, 4, 3, 2, 0, 2, 2, 4, 1)และ(1, 3, 4, 2)
งานของคุณในการท้าทายนี้คือการคำนวณว่าวงโคจรเรียงตามลำดับสร้างกี่k นี่คือOEIS A015134 นี่คือ 100 ค่าแรก (เริ่มต้นจาก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
ตรวจสอบให้แน่ใจเพื่อตรวจสอบk = 11ซึ่งเป็นอินพุตแรกที่ให้ผลมากกว่าk orbits
กฎระเบียบ
คุณได้รับเป็นจำนวนเต็มบวกkและควรเอาท์พุทA015134 (k)
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานใด ๆ ในการรับอินพุตและจัดเตรียมเอาต์พุต
คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้ถูกห้ามใช้โดยปริยาย
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ