Featured image of post कोलैट्ज़ अनुमान क्या है? गणित की एक अनसुलझी समस्या जहां कोई भी संख्या अंततः 1 हो जाती है, Python में सत्यापन

कोलैट्ज़ अनुमान क्या है? गणित की एक अनसुलझी समस्या जहां कोई भी संख्या अंततः 1 हो जाती है, Python में सत्यापन

'सम संख्या को आधा करें, और विषम संख्या को 3 से गुणा करके 1 जोड़ें' को दोहराने पर क्या यह हमेशा 1 हो जाता है? गणित की प्रसिद्ध अनसुलझी समस्या 'कोलैट्ज़ अनुमान' के अजीब नियमों को आसानी से समझाया गया है। साथ ही, यह अनुकरण करने के लिए Python में एक प्रोग्राम लिखा गया है कि क्या अनुक्रम वास्तव में 1 पर अभिसरित होता है।

क्या यह सच है कि “कोई भी संख्या अंततः 1 बन जाती है”? ── कोलात्ज़ अनुमान के साथ खेलना

नमस्ते! मैं kenji हूँ।

अचानक से, अगर आप सुनें कि “एक नियम है जिसमें कोई भी संख्या अंततः 1 बन जाती है,” तो क्या यह थोड़ा अजीब नहीं लगता?

उदाहरण के लिए, 19, या 87, या यहां तक कि 1000000 भी। यदि आप एक विशिष्ट नियम के अनुसार संख्याओं में बदलाव करते हैं, तो किसी कारण से यह अंततः “1” पर आकर रुक जाता है।

ऐसी सपने जैसी कहानी ही कोलात्ज़ अनुमान (Collatz Conjecture) है।


सबसे पहले, कोलात्ज़ अनुमान क्या है?

आइए सबसे पहले नियम बताते हैं।

  • शुरुआत: कोई भी धनात्मक पूर्णांक (positive integer) चुनें

  • प्रक्रिया:

    • यदि यह सम (even) है → इसे आधा कर दें (n → n / 2)
    • यदि यह विषम (odd) है → इसे 3 से गुणा करें और 1 जोड़ें (n → 3n + 1)

यदि आप इसे बार-बार दोहराते हैं, तो अनुमान यह है कि कोई भी संख्या अंततः 1 पर पहुंच जाएगी

उदाहरण के लिए, यदि हम 6 से शुरू करते हैं:

1
6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1

यह ठीक से “1” बन गया। वापसी पर स्वागत है!


आइए इसे कोड के साथ आज़माएं: Python में कोलात्ज़

खैर, ऐसे मामलों में इसे कोड के माध्यम से जाँचना सबसे तेज़ तरीका है! आइए Python में “कोलात्ज़ अनुक्रम (Collatz sequence)” प्रिंट करें।

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def collatz(n):
    steps = [n]
    while n != 1:
        if n % 2 == 0:
            n = n // 2
        else:
            n = 3 * n + 1
        steps.append(n)
    return steps

# उदाहरण: 19 से शुरू करें
print(collatz(19))

चलाने पर:

1
[19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]

यह सफलतापूर्वक 1 तक पहुँच जाता है। भले ही यह काफी भटकाव लेता है, अंत में यह लक्ष्य तक पहुँच ही जाता है!

वैसे, अगर आप 27 से भी शुरू करते हैं, तो यह भी उसी तरह 1 तक पहुँचता है।

1
print(collatz(27))

चलाने पर

1
2
3
4
5
6
7
8
[27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242,
121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350,
175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167,
502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479,
1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911,
2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732,
866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35,
106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]

आश्चर्यजनक रूप से, इसमें 111 कदम (steps) लगते हैं!

और तो और, बीच में यह 9000 से भी ज़्यादा तक बढ़ जाता है। लक्ष्य तक पहुँचने से पहले यह बहुत ज़्यादा भटकने वाला पैटर्न है।


तो, इसमें इतना खास क्या है?

इस अनुमान के बारे में जो बात बहुत खास है, वह यह है कि,

हालांकि यह सिद्ध नहीं हुआ है, ऐसा लगता है कि चाहे आप किसी भी संख्या के साथ शुरू करें, यह 1 बन जाएगा

यह वह हिस्सा है।

हँ? तो फिर, 1 ट्रिलियन, या 10 क्वाड्रिलियन के बारे में क्या…?

यदि आपने ऐसा सोचा, तो आप बहुत चतुर हैं। वास्तव में, कंप्यूटर का उपयोग करके “2 की घात 68” (2^68) तक की जाँच की जा चुकी है, और वे सभी 1 तक पहुँचते हैं । अविश्वसनीय…।

लेकिन, यह सैद्धांतिक रूप से सिद्ध नहीं हुआ है कि “यह सब के साथ ऐसा होगा” । गणित की दुनिया में इसे ही “अनसुलझी समस्या (Unsolved problem)” कहा जाता है।


यह “1” क्यों बन जाता है? प्रायिकता सिद्धांत (Probability) का दृष्टिकोण (गणितीय पृष्ठभूमि)

यह जादू जैसा लगता है कि कोई भी संख्या अंततः 1 बन जाती है, लेकिन प्रायिकता के दृष्टिकोण से, इसके पीछे एक तार्किक कारण है कि “हाँ, ऐसा होने की संभावना है।”

जब आप किसी विषम संख्या $n$ के लिए 3n + 1 करते हैं, तो उत्तर हमेशा एक सम संख्या होता है। इसलिए, अगले चरण में इसे हमेशा 2 से विभाजित किया जाएगा, जिससे यह प्रभावी रूप से $\frac{3n + 1}{2} \approx 1.5n$ हो जाता है।

और, इस बात की प्रायिकता $\frac{1}{2}$ है कि वह संख्या फिर से सम होगी। यदि वह सम है, तो इसे फिर से 2 से विभाजित किया जाएगा, जिससे यह $0.75n$ हो जाएगा, जो कि मूल संख्या से छोटा है।

हालांकि यह गणितीय रूप से सख्त (strict) नहीं है, लेकिन एक विषम संख्या से अगली विषम संख्या पर छलांग लगाते समय “गुणक (multiplier)” का गुणोत्तर माध्य (geometric mean) लेने पर यह ज्ञात है कि यह लगभग $\frac{3}{4}$ गुना हो जाता है (ह्यूरिस्टिक प्रायिकता मॉडल)। अर्थात, औसतन मान के सिकुड़ने (छोटा होने) की प्रवृत्ति होती है, इसलिए यह अंततः ऐसे गिरता है जैसे कि यह 1 में समा रहा हो।

अगर हम नियम थोड़ा बदल दें तो क्या होगा? (अन्य अनुमानों के साथ तुलना)

आप सोच रहे होंगे, “तो फिर, इसे 3 गुना के बजाय 5 गुना कर दें तो क्या होगा?” वास्तव में, इसे $5n + 1$ समस्या के रूप में जाना जाता है, और इस मामले में सभी संख्याएँ 1 पर अभिसरित (converge) नहीं होती हैं।

$5n + 1$ के मामले में, यह पुष्टि की गई है कि कई अलग-अलग लूप (चक्र) मौजूद हैं, और यह भी संकेत दिया गया है कि ऐसी संख्याएँ मौजूद हो सकती हैं जो अनंत तक बढ़ती ही जाती हैं (अपसरण/divergence)। इसके अलावा, $3n - 1$ समस्या के मामले में भी, “$1 \to 2 \to 1$” लूप के अलावा, “$5 \to 14 \to 7 \to 20 \to 10 \to 5$” जैसा एक और अलग लूप मौजूद है।

इससे पता चलता है कि कोलात्ज़ अनुमान की “सब कुछ 1 ($4 \to 2 \to 1$ लूप) में अभिसरित होता है” वाली प्रकृति कितने सूक्ष्म संतुलन पर आधारित है।


मानव जाति की उपलब्धि ①: कंप्यूटर द्वारा ब्रूट फोर्स (Brute Force) की सीमा

वर्तमान में, दुनिया भर के गणितज्ञ और कंप्यूटर विज्ञान के प्रति उत्साही वितरित कंप्यूटिंग (distributed computing - दुनिया भर के पीसी की कंप्यूटिंग शक्ति को संयोजित करने वाला प्रोजेक्ट) और GPU का उपयोग करके कोलात्ज़ अनुमान की निरंतर गणना कर रहे हैं।

2020 तक, कंप्यूटरों ने आश्चर्यजनक रूप से $2^{68}$ (लगभग 295 क्वाड्रिलियन) तक के सभी प्रारंभिक मानों के लिए कोलात्ज़ अनुमान के सत्य होने (अंततः 1 बनने) की पुष्टि कर दी है।

हालाँकि, गणित की दुनिया में हम यह नहीं कह सकते कि “चूँकि हमने 295 क्वाड्रिलियन तक जाँच कर ली है, इसलिए यह सब के लिए सही होगा।” क्योंकि संख्याओं के अंतहीन समुद्र के सामने, $2^{68}$ भी “पहली बूंद” के समान है।


मानव जाति की उपलब्धि ②: अनिर्णयता (Undecidability) और टेरेंस ताओ की सफलता (Breakthrough)

“इसे कोई भी सिद्ध क्यों नहीं कर सकता?” इस सवाल के जवाब में, 1972 में ब्रिटिश जीनियस गणितज्ञ जॉन कॉनवे ने यह साबित किया कि कोलात्ज़ अनुमान का थोड़ा विस्तारित संस्करण “अनिर्णय (Turing complete)” है। यह कंप्यूटर विज्ञान के मूल से जुड़ा एक भयानक तथ्य है कि “नियमों के आधार पर, यह निर्धारित करने के लिए कोई एल्गोरिदम सैद्धांतिक रूप से मौजूद नहीं है कि यह 1 तक पहुँचेगा या नहीं।” यह भी संभव है कि कोलात्ज़ अनुमान स्वयं आधुनिक गणित के ढांचे के भीतर एक अप्रमाणनीय प्रस्ताव हो।

हालांकि, 2019 में आखिरकार एक बड़ी सफलता (breakthrough) मिली। आधुनिक समय के सबसे महान गणितज्ञों में से एक, टेरेंस ताओ (Terence Tao) ने आंशिक अवकल समीकरणों (partial differential equations) और प्रायिकता सिद्धांत (probability theory) की तकनीकों का उपयोग करके साबित कर दिया कि “(हालांकि सख्ती से सभी नहीं) ** लगभग सभी प्रारंभिक मानों के लिए, कोलात्ज़ अनुक्रम अंततः एक ऐसे मान तक पहुंचता है जो मूल संख्या से बहुत छोटा होता है**।”

हालाँकि यह एक पूर्ण प्रमाण नहीं है कि “सब कुछ 1 बन जाता है,” लेकिन इसने दुनिया भर के गणितीय समुदाय में हलचल मचा दी क्योंकि यह ऐतिहासिक उपलब्धि है जहाँ मानव जाति कोलात्ज़ अनुमान की सच्चाई के सबसे करीब पहुंची है


कोलात्ज़ कौन हैं?

यहाँ तक पढ़ने के बाद, आप ज़रूर सोच रहे होंगे, “वैसे, कोलात्ज़ कौन हैं?” आइए मैं उनका ठीक से परिचय कराता हूँ!

  • नाम: लोथर कोलात्ज़ (Lothar Collatz)
  • राष्ट्रीयता: जर्मनी
  • जन्म वर्ष: 1910 - 1990
  • उपाधि: गणितज्ञ (कार्यात्मक विश्लेषण (functional analysis) और संख्या सिद्धांत (number theory) के क्षेत्र में सक्रिय)

उन्होंने 1937 में इस अनुमान का प्रस्ताव रखा था, और उसके बाद, 80 से अधिक वर्षों से कोई भी इसे साबित या गलत साबित (disprove) नहीं कर पाया है

वैसे, यह समस्या बहुत ही सरल है लेकिन इतनी गहरी है कि यहाँ तक कि पॉल एर्डोस (Paul Erdős - सुपर प्रसिद्ध गणितज्ञ) ने भी कुछ ऐसा ही कहा था:

“गणित अभी कोलात्ज़ को संभालने के लिए पर्याप्त परिपक्व नहीं है।”

दूसरे शब्दों में, यह सिद्धांत कि मानव गणित अभी तक इस रहस्य तक नहीं पहुंच पाया है…।


“कठिन गणितीय सूत्रों” की आवश्यकता नहीं है

कोलात्ज़ अनुमान के बारे में सबसे अच्छी बात यह है कि कोई भी इसके साथ खेल सकता है

अगर आपके पास एक कागज़ और पेन है, तो आप इसे कर सकते हैं। अगर आप Python में कोड लिखते हैं, तो आप इसे स्वचालित रूप से आज़मा सकते हैं। और फिर भी, अत्याधुनिक गणितज्ञ गंभीरता से इसे चुनौती दे रहे हैं

क्या यह रोमांचक नहीं है?


बोनस: एक ही बार में कई संख्याओं को जांचने का कोड

यहाँ एक ऐसा कोड दिया गया है जो आपको एक साथ कई अलग-अलग संख्याओं को जांचने की अनुमति देता है।

1
2
3
for n in range(1, 21):
    steps = collatz(n)
    print(f"{n}: {steps}(चरणों की संख्या: {len(steps)-1})")

यह आपको एक ही बार में “1 से 20” तक के कोलात्ज़ अनुक्रम दे देगा।


निष्कर्ष: यह दुनिया वास्तव में अद्भुत है

तो, यह है कोलात्ज़ अनुमान।

  • हालांकि यह बहुत सरल है
  • कोई भी इसे साबित नहीं कर सकता
  • और गणित की दुनिया में यह एक बहुत बड़ी समस्या है

यह रहस्यों के एक समूह की तरह एक अस्तित्व था।

यहां तक कि प्रोग्रामिंग की शुरुआत करने वाले भी इसे आज़मा सकते हैं, इसलिए कृपया इसे खेल कर देखें~!


अनुशंसित लिंक (रुचि रखने वालों के लिए)


यदि आप इस तरह की “रहस्यमय गणित × प्रोग्रामिंग” सामग्री के बारे में अधिक जानना चाहते हैं, तो बेझिझक “मुझे और बताएं” का अनुरोध करें। किसी दिन, मैं रीमैन परिकल्पना (Riemann hypothesis) और अभाज्य संख्याओं (prime numbers) के बारे में भी बात करूँगा!


📮समाप्त!


निर्मित Hugo के साथ
थीम Stack द्वारा डिज़ाइन किया गया Jimmy