কম্পিউটার

পাইথনে কোলাটজ সিকোয়েন্স


ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা n আছে, আমাদের এর 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
  • যদিও num 1 এর মত নয়, do
    • 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. পাইথনের একটি ক্রমানুসারে দ্বিতীয় বার বারবার শব্দ?

  2. পাইথনে একটি তালিকা প্রিন্ট করুন

  3. পাইথনে ক্রম সূচক দ্বারা কিভাবে পুনরাবৃত্তি করবেন?

  4. পাইথনে কোলন ':' অপারেটর কী করে?