Collatz अनुमान तत्वों है कि अगर आप किसी भी सकारात्मक पूर्णांक लेते हैं, उसके बाद निम्न एल्गोरिथ्म पर्याप्त बार दोहराने:
if number is odd, then multiply by three and add one
if number is even, then divide by two
आप अंततः 1 पर समाप्त हो जाएंगे। यह हमेशा काम करने लगता है, लेकिन यह कभी साबित नहीं हुआ है कि यह हमेशा करता है।
आपने पहले ही गणना कर ली है कि 1 को पाने में कितना समय लगता है , इसलिए मैंने सोचा कि मैं चीजों को थोड़ा बदल दूंगा ।
दिए गए धनात्मक पूर्णांक से शुरू करते हुए, गणना करें कि 1 को प्राप्त करने में कितना समय लगता है (इसका "रोक समय")। फिर उस नंबर के रुकने का समय ज्ञात करें।
जब तक आप 1 तक नहीं पहुंचते, या जब तक आप 100 पुनरावृत्तियों की पूरी तरह से मनमानी सीमा तक नहीं पहुंच जाते, तब तक दोहराएं। पूर्व के मामले में, प्रिंट करें कि कितने पुनरावृत्तियों ने इसे लिया। बाद के मामले में, "विफल" या अपनी पसंद के कुछ अन्य सुसंगत आउटपुट प्रिंट करें, जब तक कि यह पूर्णांक नहीं है 1≤n≤100। आप इस विकल्प के लिए एक रिक्त स्ट्रिंग आउटपुट नहीं कर सकते। सीमा के बाहर एक पूर्णांक को आउटपुट करना [1, 100], हालांकि, अनुमति है।
उदाहरण:
Input: 2
2->1
Output: 1
Input: 5
5->5->5->5->5->...
Output: Fail
Input: 10
10->6->8->3->7->16->4->2->1
Output: 8
Input: 100
100->25->23->15->17->12->9->19->20->7->16->4->2->1
Output: 13
Input: 10^100
10^100->684->126->108->113->12->9->19->20->7->16->4->2->1
Output: 13
Input: 12345678901234567890
12345678901234567890->286->104->12->9->19->20->7->16->4->2->1
Output: 11
Input: 1
--Depending on your code, one of two things may happen. Both are valid for the purposes of this question.
1
Output: 0
--Or:
1->3->7->16->4->2->1
Output: 6
जैसा कि मैंने उस भाषा की गणना 10^100और 12345678901234567890उपयोग किया है जो केवल उस आकार के लिए वास्तविक का समर्थन करती है, यदि आपकी भाषा अधिक सटीक है, तो आप उन लोगों के लिए अलग-अलग परिणाम प्राप्त कर सकते हैं।
स्कोरिंग
जैसा कि यह कोड-गोल्फ है , बाइट्स की सबसे कम राशि के साथ जवाब जीतता है।