ट्रैक
/
JavaScript
JavaScript
/
अभ्यास
/
Collatz अनुमान
Collatz अनुमान

Collatz अनुमान

आसान

परिचय

एक शाम आपके हाथ एक पुरानी नोटबुक लगी, जिसमें समझ न आने वाली घसीट भरी थी, मानो कोई जुनून की हद तक किसी विचार का पीछा कर रहा हो। एक पेज पर एक ही सवाल सबसे अलग चमक रहा था: क्या हर संख्या 1 तक पहुँचने का रास्ता खोज ही लेती है? यह किसी कोलाट्ज़ अनुमान नाम की चीज़ से जुड़ा था, ऐसी पहेली जिसने दशकों से विचारकों को उलझाए रखा है।

नियम ऊपर से बहुत आसान लगते थे। कोई भी धनात्मक पूर्णांक चुनिए।

  • अगर संख्या सम है, तो उसे 2 से भाग दीजिए।
  • अगर संख्या विषम है, तो उसे 3 से गुणा कीजिए और 1 जोड़िए।

फिर इन्हीं चरणों को नतीजे पर दोहराइए, और यह क्रम इसी तरह अनंत तक चलता रहता है।

उत्सुक होकर आपने परखने के लिए संख्या 12 चुनी और यात्रा शुरू की:

12 ➜ 6 ➜ 3 ➜ 10 ➜ 5 ➜ 16 ➜ 8 ➜ 4 ➜ 2 ➜ 1

दूसरी संख्या (6) से गिनें तो 1 तक पहुँचने में 9 चरण लगे, और जितनी बार ये नियम दोहराए गए, संख्या बदलती चली गई। शुरू में यह क्रम अनुमान से परे लगा। कभी ऊपर उछलता, कभी नीचे, कभी इधर-उधर। फिर भी यह अनुमान कहता है कि शुरुआती संख्या कोई भी हो, हम हमेशा 1 पर ही पहुँचेंगे।

यह बहुत दिलचस्प था, पर साथ ही हैरान करने वाला भी। यह हर बार काम क्यों करता दिखता है? क्या कोई ऐसी संख्या हो सकती है जहाँ यह प्रक्रिया टूट जाए, जो हमेशा के लिए लूप में फँस जाए या अनंत में निकल जाए? नोटबुक में लिखा था कि शायद इसे सुलझाने से कोई बहुत गहरी बात सामने आए, और जो भी इसके राज़ खोल सकेगा, उसके लिए प्रसिद्धि, धन और इतिहास में एक जगह इंतज़ार कर रहे हैं।

निर्देश

एक धनात्मक पूर्णांक दिया गया हो, तो Collatz Conjecture के नियमों के अनुसार 1 तक पहुँचने में लगने वाले चरणों की संख्या लौटाइए।

कार्यान्वयन

अगर n एक धनात्मक पूर्णांक नहीं है, तो प्रोग्राम को आगे चलने से रोक दीजिए और एक एरर संदेश लौटाइए।

JavaScript में यह काम throw स्टेटमेंट की मदद से किया जा सकता है।

throw new Error('Only positive integers are allowed');

स्रोत

Wikipediaयह लिंक एक नई विंडो या टैब में खुलता है
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
JavaScript Exercism

Collatz अनुमान शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और JavaScript को 37 कॉन्सेप्ट159 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।