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

पायथन में लक्ष्य योग के साथ पासा रोल की संख्या


मान लीजिए कि हमारे पास d पासे हैं, और प्रत्येक पासे में f फलकों की संख्या 1, 2, ..., f है। हमें पासे को रोल करने के लिए संभावित तरीकों (एफडी कुल तरीकों में से) मॉड्यूलो 10^9 + 7 की संख्या का पता लगाना होगा ताकि लक्ष्य के बराबर फेस अप संख्याओं का योग हो। अतः यदि इनपुट d =2, f =6, लक्ष्य =7 जैसा है, तो आउटपुट 6 होगा। इसलिए यदि हम प्रत्येक पासे को 6 फलकों के साथ फेंकते हैं, तो योग 6 प्राप्त करने के 6 तरीके हैं, जैसे 1 + 6, 2 + 5, 3 + 3, 4 + 3, 5 + 2, 6 + 1.

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

  • म :=1e9 + 7
  • क्रम d x (t + 1) की तालिका dp बनाएं और इसे 0 से भरें
  • i के लिए 0 से d – 1 की सीमा में
    • जे के लिए 0 से टी की सीमा में
      • यदि i =0, तो dp[i, j] :=1 जब j श्रेणी 1 से f तक, अन्यथा 0
      • अन्यथा
        • 1 से f की श्रेणी में l के लिए
          • अगर j – l> 0, तो dp[i, j] :=dp[i, j] + dp[i – 1, j - l], और dp[i,j] :=dp[i, जे] मॉड एम
  • रिटर्न डीपी[डी -1, टी] मॉड एम

उदाहरण (पायथन)

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

class Solution(object):
   def numRollsToTarget(self, d, f, t):
      mod = 1000000000+7
      dp =[[0 for i in range(t+1)] for j in range(d)]
      for i in range(d):
         for j in range(t+1):
            if i == 0:
               dp[i][j] = 1 if j>=1 and j<=f else 0
            else:
               for l in range(1,f+1):
                  if j-l>0:
                     dp[i][j]+=dp[i-1][j-l]
                     dp[i][j]%=mod
      return dp [d-1][t] % mod
ob = Solution()
print(ob.numRollsToTarget(2,6,7))

इनपुट

2
6
7

आउटपुट

6

  1. पायथन में n नोड्स के साथ BST की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास अलग-अलग नोड हैं। सभी अलग हैं। हमें यह पता लगाना है कि हम उन्हें कितने तरीकों से व्यवस्थित कर सकते हैं ताकि हम बाइनरी सर्च ट्री बना सकें। जैसा कि हम बाइनरी सर्च ट्री के बारे में जानते हैं, लेफ्ट सबट्री में हमेशा छोटे मान होते हैं और राइट सबट्री में बड़े मान होते हैं। इसे हल कर

  1. पथों की संख्या गिनने का कार्यक्रम जिसका योग अजगर में k है

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है और दूसरा मान k है, तो हमें उप-चाइल्ड पथों के लिए अद्वितीय नोड की संख्या ज्ञात करनी होगी, जो k के बराबर है। तो, अगर इनपुट पसंद है और k =5, तो आउटपुट 2 होगा, क्योंकि पथ [2, 3] और [1, 4] हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - गिनती :=एक मानच

  1. पायथन प्रोग्राम में किसी संख्या के सम गुणनखंडों का योग ज्ञात करें

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक संख्या दी गई है, हमें संख्या के सभी सम गुणनखंडों का योग प्रदर्शित करना होगा। दृष्टिकोण हम जाँचते हैं कि क्या संख्या विषम है, फिर कोई सम गुणनखंड नहीं हैं, इसलिए 0 लौटाएँ। यदि संख्या सम है, तो हम गणना के माध्