परिचय
मध्यम वर्ग विधि कूट-यादृच्छिक संख्या की पीढ़ी के लिए प्रयोग किया जाता है। हालांकि, यह व्यवहार में एक अच्छी विधि नहीं है, क्योंकि इसकी अवधि आमतौर पर बहुत कम है और इसमें कुछ गंभीर कमजोरियां हैं। यह कैसे काम करता है? आइए एक उदाहरण लेते हैं:
बीज के लिए, हम चुनते हैं 123456
:
Seed 123456
बीज वर्ग (बीज × बीज), के बराबर है:
Seed² 15241383936
हमने 6 अंकों की संख्या के साथ शुरुआत की । इसका मतलब है कि बीज वर्ग को 12 अंकों की संख्या प्रदान करनी चाहिए । यदि यह मामला नहीं है, तो क्षतिपूर्ति करने के लिए अग्रणी शून्य जोड़े जाते हैं:
Seed² 015241383936
हम संख्या के मध्य भाग को बीज के समान आकार के साथ लेते हैं :
Seed² 015241383936
^^^^^^
यह तो हमारी है नए बीज : 241383
। हम उसी प्रक्रिया को दोहराते हैं जैसा कि ऊपर दिखाया गया है। हम निम्नलिखित प्राप्त करते हैं:
0: 123456
015241383936
| |
1: 241383
058265752689
| |
2: 265752
070624125504
| |
3: 624125
389532015625
| |
4: 532015
283039960225
| |
5: 039960
001596801600
| |
6: 596801
और यह कुछ ही समय में जारी रहता है ... अब हम जानते हैं कि मध्य-वर्ग विधि क्या है, आइए चुनौती प्राप्त करें:
काम
हर बीज की एक अवधि होती है । N -digit बीज की अवधि 8 n से अधिक लंबी नहीं हो सकती है । उदाहरण के लिए, बीज 82
। यह निम्नलिखित अनुक्रम देगा:
82 > 72 > 18 > 32 > 02 > 00 > 00 > 00 > 00 > 00
|____|____|____|____|____|____|____|____|____|___...
0 1 2 3 4 5 6 7 8 9
आप देख सकते हैं कि अवधि फिर से समान अंक से पहले 5 के बराबर है । आपका कार्य है, जब 0 से अधिक बीज दिया जाता है जिसमें कोई अग्रणी शून्य नहीं होता है, बीज की अवधि का उत्पादन करता है । तो, इस मामले में, आपको आउटपुट की आवश्यकता है 5
।
एक अन्य उदाहरण है: 24
जो निम्नलिखित देता है:
24 > 57 > 24
|____|____|___...
0 1 2
जैसा कि आप देख सकते हैं, सभी अनुक्रम अंदर समाप्त नहीं होते हैं 0
। इस चक्र की अवधि 1 है ।
परीक्षण के मामलों
Input > Output
24 > 1
82 > 5
123456 > 146
8989 > 68
789987 > 226
123456 , 8989 , 789987 के दृश्यों के साथ पास्टबिन
यह कोड-गोल्फ है , इसलिए कम से कम बाइट्स जीत के साथ सबमिशन!
आप मान सकते हैं कि इनपुट में कभी भी असमान संख्या नहीं होगी।
24
(अवधि 2 के साथ, मैं यह कहना चाहते हैं), समय-समय पर है82
है अंत में समय-समय पर (अवधि 1 के साथ)।