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

पायथन में जांचें कि संख्या के बिट्स में लगातार सेट बिट्स की संख्या बढ़ते क्रम में है या नहीं


मान लीजिए हमारे पास एक धनात्मक संख्या n है, हमें जांचना है कि दी गई संख्या n के बिट पैटर्न में लगातार 1s की संख्या बाएं से दाएं बढ़ते क्रम में है या नहीं।

उदाहरण के लिए, यदि n = 1775 है, तो आउटपुट True होगा क्योंकि 1775 का बाइनरी प्रतिनिधित्व 11011101111 है, इसलिए लगातार 1s की संख्या [2, 3, 4] है जो बढ़ रही है।

हल करने का तरीका

  1. bits_pattern := n के बिट्स की सूची
  2. bit_count := bits_pattern का आकार
  3. p_cnt := 0, c_cnt := 0, i := 0
  4. जब तक i < bit_count:
    • यदि bits_pattern[i] == '1', तो c_cnt++, i++
    • अन्यथा यदि bits_pattern[i-1] == '0', तो i++, c_cnt = 0, जारी रखें
    • अन्यथा:
      • यदि c_cnt < p_cnt, तो 0 लौटाएं
      • i++, p_cnt = c_cnt, c_cnt = 0
  5. यदि p_cnt > c_cnt और c_cnt ≠ 0, तो False लौटाएं
  6. True लौटाएं

उदाहरण

def solve(n):
    bits_pattern = list(bin(n))
    bit_count = len(bits_pattern)
    p_cnt = 0
    c_cnt = 0
    i = 0
    while i < bit_count:
        if bits_pattern[i] == '1':
            c_cnt += 1
            i += 1
        elif bits_pattern[i - 1] == '0':
            i += 1
            c_cnt = 0
            continue
        else:
            if c_cnt < p_cnt:
                return 0
            i += 1
            p_cnt = c_cnt
            c_cnt = 0
    if p_cnt > c_cnt and c_cnt != 0:
        return False
    return True

n = 1775
print(solve(n))

इनपुट

1775

आउटपुट

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

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

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

    एक पॉजिटिव इंटीजर n दिया गया है, फिर हम इसे बाइनरी प्रतिनिधित्व में बदलते हैं और टोटल सेट बिट्स की संख्या गिनते हैं।उदाहरणInput: n=3 Output: 4एल्गोरिदमचरण 1: पॉजिटिव इंटीजर डेटा इनपुट करें। चरण 2: फिर इसे बाइनरी फॉर्म में कन्वर्ट करें। चरण 3: वेरिएबल s = 0 इनिशियलाइज़ करें। चरण 4: हर एलिमेंट को ट्रै

  1. - संख्या में कुल बिट्स गिनने के लिए पायथन प्रोग्राम

    समस्या विवरण सबसे पहले हम एक संख्या इनपुट करते हैं फिर bin() फंक्शन का उपयोग करके इस संख्या को बाइनरी में बदलते हैं और अगला आउटपुट स्ट्रिंग के पहले दो वर्ण 0b को हटाते हैं, फिर बाइनरी स्ट्रिंग की लंबाई की गणना करते हैं। उदाहरण इनपुट: 200 आउटपुट: 8 व्याख्या 200 का बाइनरी प्रतिनिधित्व 11001000 है