Collatz पुनरावृत्ति कब तक चलती है?


19

मेरे पास निम्नलिखित पायथन कोड है।

def collatz(n):
    if n <= 1:
        return True
    elif (n%2==0):
        return collatz(n/2)
    else:
        return collatz(3*n+1)

इस एल्गोरिथ्म का रनिंग-टाइम क्या है?

प्रयत्न:

यदि फ़ंक्शन के रनिंग टाइम को दर्शाता है । तो मुझे लगता है कि मेरे पास है { टी ( एन ) = 1  के लिए  n 1 टी ( एन ) = टी ( एन / 2 )  के लिए  n  भी टी ( एन ) = टी ( 3 n + 1 )  के लिए  एन  अजीबT(n)collatz(n)

{T(n)=1 for n1T(n)=T(n/2) for n evenT(n)=T(3n+1) for n odd

मुझे लगता है कि हो जाएगा एलजी n यदि n भी है, लेकिन कैसे सामान्य रूप में पुनरावृत्ति गणना करने के लिए?T(n)lgnn


4
वह T ( n ) = T ( n ) होना चाहिएऔर इतने पर। +1 महत्वपूर्ण है, अन्यथा आपके पासT(n)=1 है, सभी के लिएnजो अनुक्रम को समाप्त करता है। T(n)=T(n2)+1T(n)=1n
user253751

2
54 सम है, T (54) = 112! =
Lg

क्या यह माना जाता है कि उपयोगकर्ता केवल पूर्णांक इनपुट करेगा?
डीन मैकग्रेगर

@DeanMacGregor हाँ। वास्तव में, एक सकारात्मक पूर्णांक मान लिया जाता है।
डस्कवफ

अधिक bkg विस्तार उपयोगी होगा। आपको कोड कहां से मिला, इसे कैसे पेश किया गया? यह संख्या सिद्धांत में एक सेमीफाइमस खुली समस्या है जो ~ am सदी के लिए अनसुलझी है जिस पर लैगरियस की एक पूरी किताब लिखी गई है। CS pov से यह साबित करना कि यह किसी भी समय या अंतरिक्ष जटिलता वर्ग एक प्रमाण के बराबर है। यहाँ कई और रेफरी हैं । रुचि रखने वाले किसी भी व्यक्ति के लिए कंप्यूटर साइंस चैट का एक बड़ा विषय । वहाँ भी एक है collatzपर टैग MathOverflow आदि नवीनतम अनुसंधान से पता चलता है समस्या आंतरिक भग्न यह मुश्किल बनाने गुणों गया है।
vzn

जवाबों:


29

यह Collatz अनुमान है - अभी भी खुली समस्या है।
अनुमान है कि इस क्रम किसी भी इनपुट के लिए बंद हो जाता है, क्योंकि यह समाधान नहीं हुआ है, हम कैसे इस क्रम आवर्तन संबंध हल करने के लिए पता नहीं, इसके अलावा यह सब पर रोक नहीं सकता है सबूत के बारे में है - तो साबित जब तक चल रहा है, समय अज्ञात है और हो सकता है


धन्यवाद। लेकिन मेरी पुनरावृत्ति सही है? यदि ऐसा है, तो हम अभी भी उस पुनरावृत्ति का समाधान नहीं ढूंढ सकते हैं?
9637

"सनकी सच है" से आपका क्या मतलब है? आपको रनिंग टाइम नहीं मिल रहा है, लेकिन बहुत सारी संख्याओं के लिए यह कुछ संख्या में कूदता है और 1. तक पहुंच जाता है, रनटाइम को प्रदर्शित नहीं करता है, लेकिन फ़ंक्शन ही। T(n)
ईविल

उदाहरण के लिए, मेरा मतलब है कि मर्ज सॉर्ट में हम । चूंकि कोड पुनरावर्ती है, हम इसके लिए पुनरावृत्ति लिख सकते हैं, है ना? टी(n)=2टी(n/2)+हे(n)
9637

7
"चूंकि यह अनसुलझा है, कोई ऊपरी सीमा नहीं है" - हमें यहां की भाषा से सावधान रहना होगा। हम इस पुनरावृत्ति का समाधान नहीं जानते, कहानी का अंत।
राफेल

7

15

आपने कोड का सही अनुवाद किया हैपुनरावृत्ति को हल करने के लिए कई तरीके हैं ।

हालांकि, यह वर्तमान में अज्ञात है अगर collatzसभी के लिए भी रुकता है n; यह दावा करता है कि यह Collatz अनुमान के रूप में जाना जाता है । इसलिए, कोई भी ज्ञात विधि इस पुनरावृत्ति पर काम नहीं करेगी।

T(n)lgnn

n=2kΘ


13

समय जटिलता फ़ंक्शन है

{टी(n)=हे(1) के लिये n1टी(n)=टी(n/2)+हे(1) के लिये n यहाँ तक कीटी(n)=टी(3n+1)+हे(1) के लिये n अजीब

यदि आप असममित समय की जटिलता में रुचि रखते हैं, तो निम्नलिखित के रूप में फिर से लिखा जा सकता है।

{T(n)=1 for n1T(n)=T(n/2)+1 for n evenT(n)=T(3n+1)+1 for n odd

M,1nHaltnn

Collatz अनुमान एक बहुत प्रसिद्ध अनुमान है जिसे Collatz ने 1937 में प्रस्तावित किया था। कई प्रख्यात गणितज्ञों ने इस अनुमान को हल करने के लिए, लेकिन बहुत कम लाभ उठाने की कोशिश में अनगिनत घंटे व्यतीत किए हैं। यहां तक ​​कि पॉल एर्दो ने Collatz अनुमान के बारे में कहा, "गणित अभी ऐसी समस्याओं के लिए तैयार नहीं है।"


1
"व्यर्थ" एक व्यक्तिपरक निर्णय है। Lagarias द्वारा विशेषज्ञ विश्लेषण देखें कि किन कारणों से अनुमान पर काम / आंशिक परिणाम को "व्यर्थ" नहीं माना जा सकता है। एर्दोस द्वारा बोली भी शायद कुछ दशक पुरानी है और तब से गणित में काफी प्रगति हुई है, और जारी है ... और संभवतः सभी नई गणितीय तकनीकों को समस्या के खिलाफ प्रयास नहीं किया गया है।
vzn

वह गाल टिप्पणी में जीभ थी। (निष्पक्ष होने के लिए मैंने इसे कोष्ठक के अंदर रखा, है न)। जब तक समस्या हल नहीं होती है, तब तक सभी प्रयास बेकार लगते हैं, लेकिन एक बार हल हो जाने के बाद, आप देखते हैं कि कैसे असफलताओं ने भी समाधान का मार्ग प्रशस्त किया है। और मैं आपसे सहमत नहीं हूं कि गणित काफी प्रगति कर चुका है; तकनीक में काफी प्रगति हुई है, लेकिन भौतिकी, गणित और यहां तक ​​कि कंप्यूटर विज्ञान धीरे-धीरे आगे बढ़ रहे हैं, और यह है कि यह कैसे होना चाहिए (मैं यह कह सकता हूं क्योंकि, मैंने 30 साल पहले अपनी रस्सियों को सीखा है, अभी भी पुराना नहीं लगता है)।
श्रेयश

3x+1

लैगरियस ने इस विषय पर एक पूरी पुस्तक लिखी / संकलित / संपादित की और यह समस्या के अध्ययन के बारे में "क्षमाप्रार्थी" लगता है? जबरदस्त हंसी! काफी के विपरीत । हालाँकि, सहमत / सहमत होने के कारण उनके पास एक रक्षात्मक स्थिति है क्योंकि बहुत से अन्य गणितज्ञ समस्या को महत्वपूर्ण या प्रमुख हमले / प्रयास के लायक नहीं मानते हैं (और नोट गॉस ने फरमेट्स लास्ट थम के बारे में बिल्कुल ऐसा ही महसूस किया था!)। लेकिन शीर्ष गणितज्ञों के बड़े पैमाने पर अन्य मामले हैं जो इसे पूरी तरह से गंभीरता से ले रहे हैं जैसे एक के लिए ताओ
vzn

2

noddn3n+1

T(n)=2T(n/2)+nT(0)T(1)

Collatz फ़ंक्शन के मामले में हम के मामले में सीधे अनुमान से अनुमान लगाने में सक्षम नहीं हैं3n+1 अंततः मानक गणितीय उपकरणों का उपयोग करके खराब हो जाएगा। यह समस्या को देखते हुए हल करने वाला विषय है, न कि इसका वर्णन करने वाली पुनरावृत्ति।


0

आपके पास T (n) = T (n / 2) + 1 है अगर n सम है। लेकिन तब n / 2 की संभावना बहुत कम भी नहीं है, इसलिए आप वहां फंस गए हैं।

क्या होता है कि आपके द्वारा सीखे गए छोटे छोटे नियम वास्तविक समस्या का सामना करते हैं, और वे काम नहीं करते हैं। वे एक ईंट की दीवार से टकराते हैं, पहले चेहरा, और यह दर्द होता है। अपने आप को एक एहसान करो, और मैन्युअल रूप से टी (7) के लिए पुनरावृत्ति का पालन करें, और फिर आप बताएं कि क्या आप अभी भी मानते हैं कि यह संबंधित है l n।

यदि आपको लगता है कि यह मूल प्रश्न से संबंधित नहीं है क्योंकि 7 भी नहीं है: जब भी n विषम है, T (n) = T (3n + 1), और 3n + 1 सम है, इसलिए यदि T (n) लॉग थे n यदि n सम है, तो यह लॉग होगा (3n + 1) + 1 जब भी n> 1 विषम हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.