কম্পিউটার

পাইথনে একটি প্রদত্ত নম্বরের জন্য ধূসর কোড রূপান্তর করার প্রোগ্রাম


ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের সেই প্রদত্ত সংখ্যার জন্য ধূসর কোডটি খুঁজে বের করতে হবে (অন্য কথায় nth ধূসর কোড)। যেমনটি আমরা জানি ধূসর কোড হল বাইনারি সংখ্যা ক্রম করার একটি উপায় যাতে প্রতিটি পরপর সংখ্যার মান ঠিক এক বিট দ্বারা পৃথক হয়। কিছু ধূসর কোড হল:[0, 1, 11, 10, 110, 111, এবং আরও]

সুতরাং, যদি ইনপুটটি n =12 এর মত হয়, তাহলে আউটপুট হবে 10 যেমন 12টি (1100) বাইনারিতে, অনুরূপ ধূসর কোড হবে (1010) যার দশমিক সমতুল্য 10।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:

  • একটি ফাংশন সংজ্ঞায়িত করুন solve()। এটি n
  • লাগবে
  • যদি n 0 এর মত হয়, তাহলে
    • রিটার্ন 0
  • x :=1
  • যখন x * 2 <=n, do
    • x :=x * 2
  • রিটার্ন x + সমাধান (2 * x - n - 1)

আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:

উদাহরণ

class Solution:
   def solve(self, n):
      if n == 0:
         return 0
      x = 1
      while x * 2 <= n:
         x *= 2
      return x + self.solve(2 * x - n - 1)

ob = Solution()
n = 12
print(ob.solve(n))

ইনপুট

12

আউটপুট

10

  1. একটি সংখ্যার ফ্যাক্টোরিয়ালের জন্য পাইথন প্রোগ্রাম

  2. n-তম ফিবোনাচি সংখ্যার জন্য পাইথন প্রোগ্রাম

  3. nম কাতালান নম্বরের জন্য পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রামের জন্য কিভাবে একটি প্রদত্ত নম্বর একটি ফিবোনাচি নম্বর কিনা তা পরীক্ষা করবেন?