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

प्रोग्राम यह पता लगाने के लिए कि हम कितने तरीकों से पायथन में सीढ़ियाँ चढ़ सकते हैं

मान लीजिए कि हमारे पास n सीढ़ियां हैं, और हम एक बार में 1 या 2 सीढ़ियां चढ़ सकते हैं। हमें एक फ़ंक्शन को परिभाषित करना होगा जो सीढ़ियों पर चढ़ने के अनूठे तरीकों की संख्या लौटाता है।

चरणों का क्रम नहीं बदला जाना चाहिए, इसलिए चरणों के प्रत्येक भिन्न क्रम को एक तरीके के रूप में गिना जाता है। यदि उत्तर बहुत बड़ा है तो परिणाम को 10^9 + 7

से संशोधित करें

इसलिए, यदि इनपुट n =5 जैसा है, तो आउटपुट 8 होगा, क्योंकि 8 अद्वितीय तरीके हैं -

  • 1, 1, 1, 1, 1
  • 2, 1, 1, 1
  • 1, 2, 1, 1
  • 1, 1, 2, 1
  • 1, 1, 1, 2
  • 1, 2, 2
  • 2, 1, 2
  • 2, 2, 1

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

  • dp:=आकार n+1 की एक सरणी, और 0 से भरें
  • dp[1]:=1
  • 2 से n+1 की श्रेणी में i के लिए, करें
    • dp[i]:=dp[i-1]+dp[i-2]
  • dp mod m का अंतिम तत्व लौटाएं

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

उदाहरण

m =(10**9)+7
class Solution:
   def solve(self, n):
      dp=[0 for _ in range(n+2)]
      dp[1]=1
      for i in range(2,n+2):
         dp[i]=dp[i-1]+dp[i-2]
      return dp[-1] % m
ob = Solution()
print(ob.solve(5))

इनपुट

5

आउटपुट

8

  1. यह जांचने के लिए कार्यक्रम कि हम कितने तरीकों से अजगर में एक मैट्रिक्स की खाली कोशिकाओं को चुन सकते हैं

    मान लीजिए कि हमारे पास एक एन एक्स एन बाइनरी मैट्रिक्स है जहां 0 खाली कोशिकाओं के लिए है और 1 एक अवरुद्ध सेल है, हमें एन खाली कोशिकाओं को चुनने के तरीकों की संख्या का पता लगाना होगा जैसे कि प्रत्येक पंक्ति और प्रत्येक कॉलम में कम से कम एक चुना हुआ सेल हो। यदि उत्तर बहुत बड़ा है तो वापसी परिणाम मॉड 10

  1. प्रोग्राम यह पता लगाने के लिए कि हम पायथन में कुल कितनी बारिश पकड़ सकते हैं

    मान लीजिए कि हमारे पास n गैर-ऋणात्मक पूर्णांकों की एक सरणी है। ये उस ऊंचाई का प्रतिनिधित्व कर रहे हैं जहां प्रत्येक बार की चौड़ाई 1 है, हमें गणना करनी होगी कि बारिश के बाद यह कितना पानी पकड़ने में सक्षम है। तो नक्शा इस तरह होगा - यहां हम देख सकते हैं कि 8 नीले बॉक्स हैं, इसलिए आउटपुट 8 होगा। इसे

  1. पायथन में हम पेड़ को दो पेड़ों में कितने तरीकों से विभाजित कर सकते हैं, यह गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास 0, 1 और 2 मान वाले बाइनरी ट्री हैं। रूट में कम से कम एक 0 नोड और एक 1 नोड है। अब मान लीजिए कि एक ऑपरेशन है जहां हम पेड़ में एक किनारे को हटाते हैं और पेड़ दो अलग-अलग पेड़ बन जाते हैं। हमें एक किनारे को हटाने के कई तरीके खोजने होंगे जैसे कि दो पेड़ों में से किसी में भी 0 नोड और