एक शाम आपके हाथ एक पुरानी नोटबुक लगी, जिसमें समझ न आने वाली घसीट भरी थी, मानो कोई जुनून की हद तक किसी विचार का पीछा कर रहा हो। एक पेज पर एक ही सवाल सबसे अलग चमक रहा था: क्या हर संख्या 1 तक पहुँचने का रास्ता खोज ही लेती है? यह किसी कोलाट्ज़ अनुमान नाम की चीज़ से जुड़ा था, ऐसी पहेली जिसने दशकों से विचारकों को उलझाए रखा है।
नियम ऊपर से बहुत आसान लगते थे। कोई भी धनात्मक पूर्णांक चुनिए।
फिर इन्हीं चरणों को नतीजे पर दोहराइए, और यह क्रम इसी तरह अनंत तक चलता रहता है।
उत्सुक होकर आपने परखने के लिए संख्या 12 चुनी और यात्रा शुरू की:
12 ➜ 6 ➜ 3 ➜ 10 ➜ 5 ➜ 16 ➜ 8 ➜ 4 ➜ 2 ➜ 1
दूसरी संख्या (6) से गिनें तो 1 तक पहुँचने में 9 चरण लगे, और जितनी बार ये नियम दोहराए गए, संख्या बदलती चली गई। शुरू में यह क्रम अनुमान से परे लगा। कभी ऊपर उछलता, कभी नीचे, कभी इधर-उधर। फिर भी यह अनुमान कहता है कि शुरुआती संख्या कोई भी हो, हम हमेशा 1 पर ही पहुँचेंगे।
यह बहुत दिलचस्प था, पर साथ ही हैरान करने वाला भी। यह हर बार काम क्यों करता दिखता है? क्या कोई ऐसी संख्या हो सकती है जहाँ यह प्रक्रिया टूट जाए, जो हमेशा के लिए लूप में फँस जाए या अनंत में निकल जाए? नोटबुक में लिखा था कि शायद इसे सुलझाने से कोई बहुत गहरी बात सामने आए, और जो भी इसके राज़ खोल सकेगा, उसके लिए प्रसिद्धि, धन और इतिहास में एक जगह इंतज़ार कर रहे हैं।
एक धनात्मक पूर्णांक दिया गया हो, तो Collatz Conjecture के नियमों के अनुसार 1 तक पहुँचने में लगने वाले चरणों की संख्या लौटाइए।
| रजिस्टर | उपयोग | टाइप | विवरण |
|---|---|---|---|
$a0 |
इनपुट | पूर्णांक | शुरुआती संख्या |
$v0 |
आउटपुट | पूर्णांक | अपेक्षित चरणों की संख्या, संख्या अमान्य होने पर -1 |
$t0-9 |
अस्थायी | कोई भी | अस्थायी भंडारण के लिए उपयोग |
Exercism पर साइन अप कीजिए और MIPS Assembly को 70 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।