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

पायथन में जांचें कि किसी संख्या के सभी बिट्स सेट हैं या नहीं

मान लीजिए हमारे पास एक संख्या n है। हमें यह जांचना है कि क्या दी गई संख्या n के सभी बिट्स सेट (1) हैं या नहीं।

उदाहरण के लिए, यदि इनपुट n = 255 है, तो आउटपुट True होगा क्योंकि 255 का बाइनरी प्रतिनिधित्व 11111111 है।

समाधान दृष्टिकोण

एक संख्या के सभी बिट्स सेट होने का अर्थ है कि वह 2^k - 1 रूप की है (जैसे 1, 3, 7, 15, 31, 63, 127, 255, ...)। हम बिटवाइज़ ऑपरेशन का उपयोग करके इसकी जांच कर सकते हैं।

एल्गोरिदम चरण (बिटवाइज़ विधि):

  1. यदि संख्या 0 है, तो False लौटाएं
  2. जब संख्या > 0:
    • यदि संख्या सम है (LSB 0 है), तो False लौटाएं
    • संख्या को राइट शिफ्ट करें: number >>= 1
  3. True लौटाएं

अनुकूलित विधि: n & (n + 1) == 0 जांचें। यदि n के सभी बिट्स 1 हैं, तो n+2 की घात होगी और n & (n+1) = 0 होगा।

पायथन कार्यान्वयन

def solve(number):
    if number == 0:
        return False
    while number > 0:
        if (number & 1) == 0:
            return False
        number >>= 1
    return True

# अनुकूलित संस्करण
def solve_optimized(number):
    return number != 0 and (number & (number + 1)) == 0

n = 255
print(solve(n))           # True
print(solve_optimized(n)) # True

इनपुट

255

आउटपुट

True

व्याख्या:

255 का बाइनरी: 11111111 (8 बिट्स सभी 1)

255 + 1 = 256 = 100000000

255 & 256 = 0 ✓

  1. - पायथन प्रोग्राम: जांचें कि क्या किसी संख्या के सभी अंक उसे विभाजित करते हैं

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

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

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

  1. - बाइनरी संख्या में K लगातार 1 हैं या नहीं जांचने का पायथन प्रोग्राम

    समस्या विवरण सबसे पहले हम 1 और 0 के संयोजन के साथ एक यूजर इनपुट स्ट्रिंग लेते हैं। फिर 1 की एक नई स्ट्रिंग बनाते हैं, फिर जांचते हैं कि क्या p संख्या में लगातार 1 मौजूद हैं या नहीं। यदि मौजूद हैं तो FOUND प्रदर्शित करें अन्यथा NOT FOUND। उदाहरण बाइनरी संख्या ::1111001111 लगातार 1 दर्ज करें :3 लगाता