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

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

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

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

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

  • bits_pattern :=n के बिट्स की एक नई सूची
  • bit_count :=bit_pattern का आकार
  • p_cnt:=0, c_cnt:=0
  • मैं :=0
  • जबकि मैं
  • यदि bit_pattern[i] 1 के समान है, तो
    • c_cnt:=c_cnt + 1, i:=i + 1
  • अन्यथा जब bit_pattern[i - 1] 0 है, तब
    • i :=i + 1, c_cnt :=0
    • अगले पुनरावृत्ति के लिए जाएं
  • अन्यथा,
    • अगर c_cnt
    • वापसी 0
  • i :=i + 1, p_cnt :=c_cnt, c_cnt :=0
  • अगर p_cnt> c_cnt और c_cnt 0 नहीं है, तो
    • झूठी वापसी
  • सही लौटें
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    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 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनने के लिए पायथन प्रोग्राम

      इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N के साथ उपलब्ध सभी संभावित भिन्न बाइनरी स्ट्रिंग्स को गिनने की आवश्यकता है ताकि स्ट्रिंग में कोई क्रमागत 1 मौजूद न हो। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देख

    1. 1 से n तक सभी संख्याओं में कुल सेट बिट्स को गिनने के लिए पायथन प्रोग्राम।

      एक सकारात्मक पूर्णांक n को देखते हुए, हम इसके द्विआधारी प्रतिनिधित्व में बदल जाते हैं और सेट बिट्स की कुल संख्या की गणना करते हैं। उदाहरण Input : n=3 Output : 4 एल्गोरिदम Step 1: Input a positive integer data. Step 2: then convert it to binary form. Step 3: initialize the variable s = 0. Step 4: tra

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

      पहले हम एक नंबर इनपुट करते हैं फिर इस नंबर को बिन () फ़ंक्शन का उपयोग करके बाइनरी में परिवर्तित करते हैं और फिर आउटपुट स्ट्रिंग के पहले दो अक्षर 0b को हटाते हैं, फिर बाइनरी स्ट्रिंग की लंबाई की गणना करते हैं। उदाहरण Input:200 Output:8 स्पष्टीकरण Binary representation of 200 is 10010000 एल्गोरिद