কম্পিউটার

পাইথনে 0 থেকে n মান দিয়ে অনন্য বাইনারি অনুসন্ধান গাছের সংখ্যা গণনা করার প্রোগ্রাম তৈরি করা যেতে পারে


ধরুন আমাদের একটি সংখ্যা n আছে, আমাদেরকে [0, n) থেকে সংখ্যা দিয়ে তৈরি করতে পারি এমন অনন্য BST-এর সংখ্যা খুঁজে বের করতে হবে। উত্তরটি খুব বড় মোড হলে ফলাফল 10^9+7

সুতরাং, যদি ইনপুট n =3 এর মত হয়, তাহলে আউটপুট হবে 5

পাইথনে 0 থেকে n মান দিয়ে অনন্য বাইনারি অনুসন্ধান গাছের সংখ্যা গণনা করার প্রোগ্রাম তৈরি করা যেতে পারে

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

  • সংখ্যা :=1
  • ডিনম :=n + 1
  • 1 থেকে n রেঞ্জের জন্য, করুন
    • সংখ্যা :=সংখ্যা * n + i
    • সংখ্যা :=সংখ্যা মোড m
    • ডিনম :=ডিনোম * i
    • denom :=denom mod m
  • সংখ্যা :=সংখ্যা * (denom^(m-2)) mod m
  • রিটার্ন সংখ্যা মোড m

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

উদাহরণ

class Solution:
   def solve(self, n):
      m = 10 ** 9 + 7
      numer = 1
      denom = n + 1
      for i in range(1, n + 1):
         numer *= n + i
         numer %= m
         denom *= i
         denom %= m
         numer *= pow(denom, m-2, m)
      return numer % m
ob = Solution()
print(ob.solve(4))

ইনপুট

4

আউটপুট

14

  1. পাইথনে n নোড সহ BST সংখ্যা গণনা করার প্রোগ্রাম

  2. পাইথনে প্রদত্ত প্রান্তগুলি অন্তর্ভুক্ত করে এমন অনন্য পাথের সংখ্যা গণনা করার প্রোগ্রাম

  3. পাইথনের একটি বাইনারি ট্রি থেকে জোড় মান সহ সমস্ত পাতা মুছে ফেলার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম পরপর 1’ ছাড়া বাইনারি স্ট্রিং সংখ্যা গণনা করতে