Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में व्याकरण के नियमों का उपयोग करके हम कितने तार बना सकते हैं, इसकी गणना करने का कार्यक्रम

मान लीजिए कि हमारे पास एक संख्या 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"]

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • मी =10^9 + 7

  • अगर n 0 के समान है, तो

    • वापसी 0

  • पांच चर परिभाषित करें a, e, i, o, u, सभी प्रारंभ में 1 हैं

    • _ के लिए 0 से n-1 की सीमा में, करें

      • ए:=ई+आई+यू

      • ई:=ए+आई

      • मैं :=ई+ओ

      • ओ:=मैं

      • आप :=मैं+ओ

  • वापसी (ए + ई + आई + ओ + यू) मॉड एम

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

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. सी ++ प्रोग्राम डोडेकैगन की संख्या गिनने के लिए जिसे हम आकार डी बना सकते हैं

    मान लीजिए कि हमारे पास एक संख्या d है। विचार करें कि अनंत संख्या में वर्गाकार टाइलें हैं और भुजाओं की लंबाई के साथ नियमित त्रिकोणीय टाइलें हैं। हमें यह पता लगाना है कि इन टाइलों का उपयोग करके हम कितने तरीकों से नियमित डोडेकागन (12-पक्षीय बहुभुज) बना सकते हैं। यदि उत्तर बहुत बड़ा है, तो परिणाम मोड 99

  1. लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N के साथ उपलब्ध सभी संभावित भिन्न बाइनरी स्ट्रिंग्स को गिनने की आवश्यकता है ताकि स्ट्रिंग में कोई क्रमागत 1 मौजूद न हो। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देख

  1. किसी दिए गए स्ट्रिंग में सेट का उपयोग करके स्वरों की संख्या गिनने के लिए पायथन प्रोग्राम

    इस कार्यक्रम में, एक उपयोगकर्ता इनपुट स्ट्रिंग दिया गया। हमें इस स्ट्रिंग में स्वरों की संख्या गिननी है। यहां हम पायथन में सेट का उपयोग करते हैं। सेट एक अनियंत्रित संग्रह डेटा प्रकार है जो चलने योग्य, परिवर्तनशील और कोई डुप्लिकेट तत्व नहीं है। उदाहरण Input str1=pythonprogram Output 3 एल्गोरिदम Step