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

पायथन में लगातार बाइनरी संख्याओं का संयोजन ज्ञात करने का प्रोग्राम


मान लीजिए हमारे पास एक संख्या n है, हमें 1 से n तक के बाइनरी प्रतिनिधित्व को क्रम में एक-एक करके जोड़कर बने बाइनरी स्ट्रिंग का दशमलव मान ज्ञात करना है, यदि उत्तर बहुत बड़ा है तो उत्तर को 10^9 + 7 मॉड्यूलो वापस करें।

इसलिए, यदि इनपुट है n = 4, तो आउटपुट 220 होगा क्योंकि, 1 से 4 तक बाइनरी प्रतिनिधित्व को जोड़ने पर "1" + "10" + "11" + "100" = 110111000 मिलेगा, यह 220 का बाइनरी प्रतिनिधित्व है।

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

  • ans := 1
  • m := 10^9+7
  • i को 2 से n तक के लिए, करें
    • ans := ans को i की बिट लंबाई की संख्या में शिफ्ट करें
    • ans := (ans+i) mod m
  • ans वापस करें

उदाहरण

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

def solve(n):
    ans = 1
    m = (10**9+7)
    for i in range(2, n+1):
        ans = ans << i.bit_length()
        ans = (ans + i) % m
    return ans

n = 4
print(solve(n))

इनपुट

4

आउटपुट

220
  1. Python में बाइनरी ट्री के सबसे लंबे लगातार पथ की लंबाई खोजने का प्रोग्राम Python में बाइनरी ट्री के सबसे लंबे लगातार पथ की लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें बाइनरी ट्री में सबसे लंबा पथ ढूंढना है।इसलिए, यदि इनपुट इस तरह हैतो आउटपुट 5 होगा क्योंकि सबसे लंबा लगातार क्रम [2, 3, 4, 5, 6] है।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -यदि रूट null है, तो0 लौटाएंmaxPath := 0helper() फ़ंक्शन परिभाषित करें। यह नोड

  1. पायथन में बाइनरी ट्री पर k-लंबाई के पथ खोजने का प्रोग्राम पायथन में बाइनरी ट्री पर k-लंबाई के पथ खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है जिसमें अद्वितीय मान हैं और हमारे पास एक अन्य मान k है, हमें ट्री में k-लंबाई के अद्वितीय पथों की संख्या ढूंढनी है। पथ पैरेंट से चाइल्ड या चाइल्ड से पैरेंट की ओर जा सकते हैं। हम दो पथों को अलग मानेंगे जब कोई नोड एक पथ में दिखाई देता है लेकिन दूसरे में नहीं। उदाह

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

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