Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में Collatz अनुक्रम

मान लीजिए कि हमारे पास एक धनात्मक पूर्णांक n है, तो हमें इसके Collatz अनुक्रम की लंबाई ज्ञात करनी होगी। जैसा कि हम जानते हैं Collatz अनुक्रम क्रमिक रूप से उत्पन्न होता है जहाँ n =n/2 जब n और भी अन्यथा n =3n+ 1 होता है। और यह क्रम n =1. पर समाप्त होता है।

इसलिए, यदि इनपुट n =13 जैसा है, तो आउटपुट 10 होगा क्योंकि [13, 40, 20, 10, 5, 16, 8, 4, 2, 1] यह अनुक्रम है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • यदि संख्या 0 के समान है, तो
    • वापसी 0
  • लंबाई:=1
  • जबकि संख्या 1 के समान नहीं है, करें
    • num :=(num/2) जब num mod 2 0 हो अन्यथा (3 * num + 1)
    • लंबाई:=लंबाई + 1
  • वापसी की लंबाई

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

class Solution:
   def solve(self, num):
      if num == 0:
         return 0
      length = 1
      while num != 1:
         num = (num / 2) if num % 2 == 0 else (3 * num + 1)
         length += 1
      return length
ob = Solution()
print(ob.solve(13))

इनपुट

13

आउटपुट

10

  1. पायथन में एक सूची प्रिंट करें

    सूची तत्वों का एक क्रम है। अनुक्रम में कोई भी तत्व क्रम में अपनी स्थिति से पहुँचा जा सकता है। इंडेक्स 0 से शुरू होता है। इसलिए लिस्ट [2] इंडेक्स 2 पर एलिमेंट लौटाएगा, लिस्ट में तीसरा यानी 50।

  1. पायथन में अनुक्रम सूचकांक द्वारा पुनरावृति कैसे करें?

    पायथन में अनुक्रम वस्तुएं वस्तुओं का एक क्रमबद्ध संग्रह है। अनुक्रम में प्रत्येक आइटम (सूची, टपल और स्ट्रिंग) 0 से शुरू होने वाले सूचकांक द्वारा पहुँचा जा सकता है। किसी सूची में तत्वों को पार करने के लिए >>> L1=[10,20,30,40,50] >>> for i in range(len(L1)): print (L1[i]) 10 20 30 4

  1. पाइथन में कोलन ':' ऑपरेटर क्या करता है?

    The :प्रतीक का प्रयोग Python में एक से अधिक उद्देश्यों के लिए किया जाता है अनुक्रम के साथ स्लाइस ऑपरेटर के रूप में - - ऑपरेटर एक अनुक्रम वस्तु जैसे सूची, टपल या स्ट्रिंग से एक भाग को काटता है। इसमें दो तर्क लगते हैं। पहला स्लाइस की शुरुआत का सूचकांक है और दूसरा स्लाइस के अंत का सूचकांक है। दोनों ऑपर