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

Python प्रोग्राम - अधिकतम k लगातार गेम जीतने के तरीकों की गिनती

दो संख्याएं n और k दी गई हैं। यहां n उन गेम की संख्या दर्शाता है जिन्हें हम खेलने जा रहे हैं। हमें उन तरीकों की संख्या खोजनी है जिनसे हम लगातार k या उससे कम गेम जीत सकते हैं। यदि उत्तर बहुत बड़ा है तो परिणाम को 10^9 + 7 से मोड करें।

उदाहरण

इनपुट: n = 3, k = 2

आउटपुट: 7

व्याख्या: लगातार 2 या उससे कम बार जीतने के संभावित तरीके हैं: ["LLL", "WLL", "LWL", "LLW", "WWL", "LWW", "WLW"]।

एल्गोरिदम (डायनामिक प्रोग्रामिंग)

  1. m := 10^9 + 7
  2. dp(i, K) फंक्शन परिभाषित करें:
    • यदि i >= n or K > k: K <= k हो तो true लौटाएं, अन्यथा false
    • (dp(i + 1, 0) % m + dp(i + 1, K + 1) % m) लौटाएं
  3. मुख्य विधि से dp(0, 0) % m लौटाएं

Python कार्यान्वयन

def solve(n, k):
    m = 10**9 + 7
    def dp(i, K):
        if i >= n or K > k:
            return K <= k
        return (dp(i + 1, 0) + dp(i + 1, K + 1)) % m
    return dp(0, 0) % m

n = 4
k = 2
print(solve(n, k))  # आउटपुट: 13 (मूल आउटपुट 5 गलत प्रतीत होता है)

इनपुट/आउटपुट

Input: 4, 2
Output: 13

नोट: मूल कोड में m = 1**9 + 7 था जो गलत है (1**9 = 1)। सही है 10**9 + 7। साथ ही मूल आउटपुट 5 गलत है; n=4, k=2 के लिए सही उत्तर 13 है।

  1. - Python प्रोग्राम - स्ट्रिंग में विशिष्ट सबस्ट्रिंग की संख्या गिनें

    एक स्ट्रिंग s दी गई है, हमें s के विशिष्ट गैर-खाली सबस्ट्रिंग की संख्या खोजनी है। उदाहरण इनपुट: s = abaa आउटपुट: 8 व्याख्या: सबस्ट्रिंग हैं [a, b, ab, ba, aa, aba, baa, abaa]। एल्गोरिदम (ट्राई/प्रीफिक्स ट्री) trie := {} (खाली डिक्शनरी) n := len(s) i 0 से n-1 तक: curr := trie j i से n-1

  1. पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की सूची है। हमारे पास x नामक एक और संख्या भी है। हमें nums से उन सभी नंबरों को फ़िल्टर करके ढूंढना है जो x से कम हैं। पायथन में filter() मेथड होता है जो फंक्शन को आर्गुमेंट के रूप में लेता है और इस फंक्शन का उपयोग करके फ़िल्टर करता है। तो, यदि इनपुट nums = [1,5

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

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N की सभी संभावित अलग बाइनरी स्ट्रिंग्स गिननी हैं जिनमें लगातार 1 न हों। उदाहरण # स्ट्रिंग्स की संख्या गिनें def countStrings(n): a = [0 for i in range(n)] b = [0 for i in r