फाइबोनैचि अनुक्रम एक दृश्य अच्छी तरह से पता है, जिसमें प्रत्येक प्रविष्टि पिछले दो और पहले दो प्रविष्टियों का योग है कर रहे हैं 1. हम एक निरंतर अनुक्रम समय-समय पर हो जाएगा द्वारा प्रत्येक शब्द के सापेक्ष लेते हैं है। उदाहरण के लिए यदि हमने अनुक्रम mod 7 की गणना करने का निर्णय लिया तो हमें निम्नलिखित मिलेगा:
1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0 1 1 ...
इसकी अवधि 16 है। एक संबंधित अनुक्रम, जिसे पिसानो अनुक्रम कहा जाता है , को इस तरह परिभाषित किया गया है कि a(n)जब माड्यूलो एन की गणना की जाती है, तो यह दृश्य अनुक्रम की अवधि होती है।
कार्य
आपको एक प्रोग्राम या फ़ंक्शन लिखना चाहिए जो दिए nजाने पर फाइबोनैचि अनुक्रम मॉड की अवधि की गणना और आउटपुट करेगा n। पिस्सनो अनुक्रम में यह नौवां शब्द है।
आपको रेंज पर केवल पूर्णांकों का समर्थन करना चाहिए 0 < n < 2^30
यह एक कोड-गोल्फ प्रतियोगिता है, इसलिए आपको अपने स्रोत कोड के आकार को बाइट्स के अनुसार कम से कम करना चाहिए।
परीक्षण के मामलों
1 -> 1
2 -> 3
3 -> 8
4 -> 6
5 -> 20
6 -> 24
7 -> 16
8 -> 12
9 -> 24
10 -> 60
11 -> 10
12 -> 24
f(i),f(i+1)अधिकांश n^2मूल्यों पर ले जा सकते हैं आधुनिक n। इस प्रकार, nसीमित 2^30अवधि तक उत्पादन कर सकता है 2^60। प्रतिबन्ध n <= 2^16देना होगा P(n) <= 2^32।
f(i+2) = f(i+1)+f(i), इसलिए अवधि से अधिक मशीन लूपिंग की 'स्थिति' को पूर्णांक मॉड की एक जोड़ी के साथ वर्णित किया जा सकता है n। अधिकांश n^2राज्यों में हैं, इसलिए अवधि सबसे अधिक है n^2। ओह! विकिपीडिया का दावा है कि यह अवधि सबसे अधिक है 6n। मेरी तुच्छता को कभी नहीं।