কম্পিউটার

পাইথনে ব্যাকরণের নিয়ম ব্যবহার করে স্ট্রিং সংখ্যা গণনা করার প্রোগ্রাম


ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের খুঁজে বের করতে হবে n দৈর্ঘ্যের স্ট্রিংগুলির সংখ্যা নিম্নলিখিত নিয়মগুলি ব্যবহার করে তৈরি করা যেতে পারে -

  • প্রতিটি অক্ষর একটি ছোট হাতের স্বর [a, e, i, o, u]

  • "a" শুধুমাত্র একটি "e"

    দ্বারা অনুসরণ করা যেতে পারে
  • "e" শুধুমাত্র "a" এবং "i"

    -এর যেকোনো একটি দ্বারা অনুসরণ করা যেতে পারে
  • "i" এর পরে অন্য "i"

    নাও হতে পারে
  • "o" শুধুমাত্র "i" এবং "u"

    -এর যেকোনো একটি দ্বারা অনুসরণ করা যেতে পারে
  • "u" শুধুমাত্র একটি "a"

    দ্বারা অনুসরণ করা যেতে পারে

ফলাফলটি খুব বড় হলে, ফলাফলটিকে 10^9 + 7 দ্বারা পরিবর্তন করুন।

সুতরাং, যদি ইনপুটটি n =2 এর মত হয়, তাহলে আউটপুট হবে 10, কারণ আমরা নিম্নলিখিত দুটি অক্ষর স্ট্রিং তৈরি করতে পারি:["ae", "ea", "ei", "ia", "ie", " io", "iu", "oi", "ou", "ua"]

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

  • m =10^9 + 7

  • যদি n 0 এর সমান হয়, তাহলে

    • রিটার্ন 0

  • পাঁচটি ভেরিয়েবল সংজ্ঞায়িত করুন a, e, i, o, u, সবগুলি প্রাথমিকভাবে 1

    • 0 থেকে n-1 পরিসরে _ এর জন্য, করুন

      • a :=e+i+u

      • e :=a+i

      • i :=e+o

      • o :=i

      • u :=i+o

  • রিটার্ন (a + e + i + o + u) mod m

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

উদাহরণ

class Solution:
   def solve(self, n):
      m = (10 ** 9 + 7)
      if n == 0:
         return 0
      a = e = i = o = u = 1
      for _ in range(n-1):
         a, e, i, o, u = e+i+u, a+i, e+o, i, i+o
      return (a + e + i + o + u) % m

ob = Solution()
print(ob.solve(3))

ইনপুট

3

আউটপুট

19

  1. ডোডেকাগনের সংখ্যা গণনা করার জন্য C++ প্রোগ্রাম আমরা d এর আকার তৈরি করতে পারি

  2. আমরা পাইথনে n ডাইস নিক্ষেপ করতে পারি তার সংখ্যা গণনা করার প্রোগ্রাম

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

  4. একটি প্রদত্ত স্ট্রিং সেট ব্যবহার করে স্বর সংখ্যা গণনা করার জন্য পাইথন প্রোগ্রাম