কম্পিউটার

আমরা পাইথনে 2 x 1 ডমিনো দিয়ে 3 x n বক্স পূরণ করতে পারি তার সংখ্যা গণনা করার প্রোগ্রাম


ধরুন আমাদের একটি সংখ্যা n আছে, আমাদেরকে 1 x 2 ডোমিনো দিয়ে একটি (3 x n) ব্লক পূরণ করার উপায় বের করতে হবে। প্রয়োজনে আমরা ডমিনো ঘোরাতে পারি। উত্তরটি খুব বড় হলে এই মোড 10^9 + 7 ফেরত দিন।

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

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

  • m =10^9 + 7
  • যদি n বিজোড় হয়, তাহলে
    • রিটার্ন 0
  • cs :=1, os :=0
  • 2 থেকে n রেঞ্জের i জন্য, 2 দ্বারা বাড়ান, করুন
    • cs :=3 * cs + os
    • os :=2 * cs + os
  • সিএস মোড এম রিটার্ন করুন

উদাহরণ (পাইথন)

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

class Solution:
   def solve(self, n):
      m = (10 ** 9 + 7)
      if n % 2 == 1:
         return 0
      cs = 1
      os = 0
      for i in range(2, n + 1, 2):
         cs, os = (3 * cs + os, 2 * cs + os,)
      return cs % m
ob = Solution()
n = 4
print(ob.solve(n))

ইনপুট

4

আউটপুট

11

  1. পাইথনে ক্রমাগত সর্বাধিক k গেমে জেতার উপায় গণনা করার প্রোগ্রাম

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

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

  4. পাইথনে প্রদত্ত শর্তগুলির সাথে কাজের সংখ্যা খুঁজে বের করার প্রোগ্রামটি শেষ করা যেতে পারে