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

पायथन में 0 से n मानों के साथ बनने वाले अद्वितीय बाइनरी सर्च ट्री की संख्या गिनने का प्रोग्राम


मान लीजिए हमारे पास एक संख्या n है, हमें उन अद्वितीय BST की संख्या ढूंढनी है जिन्हें हम [0, n) से संख्याओं के साथ उत्पन्न कर सकते हैं। यदि उत्तर बहुत बड़ा है तो परिणाम को 10^9+7 से मॉड करें।

उदाहरण के लिए, यदि इनपुट n = 3 है, तो आउटपुट 5 होगा। पायथन में 0 से n मानों के साथ बनने वाले अद्वितीय बाइनरी सर्च ट्री की संख्या गिनने का प्रोग्राम

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

  • numer := 1
  • denom := n + 1
  • i को 1 से n तक के लिए करें:
    • numer := numer * (n + i)
    • numer := numer % m
    • denom := denom * i
    • denom := denom % m
  • numer := numer * (denom^(m-2)) % m
  • numer % m वापस करें

उदाहरण

class Solution:
    def solve(self, n):
        m = 10**9 + 7
        numer = 1
        denom = n + 1
        for i in range(1, n+1):
            numer *= n + i
            numer %= m
            denom *= i
            denom %= m
        numer *= pow(denom, m-2, m)
        return numer % m
ob = Solution()
print(ob.solve(4))

इनपुट

4

आउटपुट

14
  1. पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास (u, v) के रूप में एज की सूची है जो एक ट्री दर्शाती है। प्रत्येक एज के लिए हमें उन अद्वितीय पथों की कुल संख्या ज्ञात करनी है जिनमें वह एज शामिल है, उसी क्रम में जैसे इनपुट में दिया गया है। उदाहरण के लिए, यदि इनपुट है edges = [[0, 1],[0, 2],[1, 3],[1, 4]], तो आउटपुट [6, 4, 4, 4] ह

  1. पायथन में बाइनरी ट्री से सम मान वाले सभी पत्तों को हटाने का प्रोग्राम पायथन में बाइनरी ट्री से सम मान वाले सभी पत्तों को हटाने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हम बार-बार उन सभी पत्तों को हटाएंगे जिनके मान सम हैं। सभी को हटाने के बाद, यदि केवल सम मान वाला रूट बचता है, तो उसे भी हटा दिया जाएगा। उदाहरण के लिए, यदि इनपुट जैसा है: तो आउटपुट होगा: इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: solve() फंक्शन परिभाषि

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

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