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

पायथन में n के समान सेट बिट्स के साथ उच्च संख्या खोजने का कार्यक्रम?

मान लीजिए हमारे पास एक संख्या n है; हमें बाइनरी रूप में n के समान संख्या 1s के साथ सबसे छोटी अगली उच्च संख्या ज्ञात करनी होगी।

इसलिए, यदि इनपुट n =7 जैसा है, तो आउटपुट 11 होगा, क्योंकि बाइनरी में 7 0111 है और तीन के साथ 7 से अगला उच्च 11 होगा जो बाइनरी में 1011 है।

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

  • कॉपी:=n, शून्य:=0, वाले:=0

  • जबकि कॉपी 0 नहीं है और कॉपी सम है, करें

    • शून्य :=शून्य + 1

    • कॉपी =कॉपी / 2

  • जबकि कॉपी विषम है, करें

    • वाले :=वाले + 1

    • कॉपी =कॉपी / 2

  • दाएं :=वाले + शून्य

  • n:=n या (2^दाएं)

  • n :=n और उलटा ((2^दाएं) - 1)

  • n :=n OR((2 ^ (वाले - 1)) - 1

  • वापसी n

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

उदाहरण

class Solution:
   def solve(self, n):
      copy = n
      zeros = 0
      ones = 0
      while copy and not copy & 1:
         zeros += 1
         copy >>= 1
      while copy & 1:
         ones += 1
         copy >>= 1
      right = ones + zeros
      n |= 1 << right
      n &= ~((1 << right) - 1)
      n |= (1 << ones - 1) - 1
      return n

ob = Solution()
n = 7
print(ob.solve(n))

इनपुट

7

आउटपुट

11

  1. पायथन का उपयोग करके समान लेबल वाले उप-वृक्ष में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास n नोड्स वाला एक रूटेड सामान्य ट्री है, जिसके नोड्स 0 से n-1 तक गिने जाते हैं। प्रत्येक नोड में लोअरकेस अंग्रेजी अक्षर वाला एक लेबल होता है। लेबल्स को लेबल एरे में इनपुट के रूप में दिया जाता है, जहां लेबल्स [i] में ith नोड के लिए लेबल होता है। पेड़ को किनारे की सूची द्वारा दर्श

  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