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

पायथन में जांचें कि किसी उपसमुच्चय का बिटवाइज AND 2 की घात है या नहीं


मान लीजिए हमारे पास nums नामक संख्याओं की एक सरणी है। हमें जांचना है कि क्या nums के किसी उपसमुच्चय का बिटवाइज AND 2 की घात है या नहीं।

उदाहरण के लिए, यदि nums = [22, 25, 9] है, तो आउटपुट True होगा, क्योंकि उपसमुच्चय {22, 9} का बाइनरी रूप {10110, 1001} है और इनका AND 10000 = 16 है जो 2 की घात है।

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

  1. MAX := 32 (अधिकतम 32 बिट संख्याएं मानकर)
  2. यदि सरणी का आकार 1 है, तो जांचें कि वह संख्या 2 की घात है या नहीं
  3. total := 0, सभी 32 बिट्स के लिए total = total OR 2^i करें
  4. प्रत्येक बिट स्थिति i के लिए:
    • ret := total
    • प्रत्येक संख्या j के लिए: यदि nums[j] में i-वां बिट सेट है, तो ret = ret AND nums[j]
    • यदि ret 2 की घात है, तो True लौटाएं
  5. False लौटाएं

उदाहरण

MAX = 32

def is_2s_pow(v):
    return v and (v & (v - 1)) == 0

def solve(nums):
    if len(nums) == 1:
        return is_2s_pow(nums[0])
    total = 0
    for i in range(MAX):
        total = total | (1 << i)
    for i in range(MAX):
        ret = total
        for j in range(len(nums)):
            if nums[j] & (1 << i):
                ret = ret & nums[j]
        if is_2s_pow(ret):
            return True
    return False

nums = [22, 25, 9]
print(solve(nums))

इनपुट

[22, 25, 9]

आउटपुट

True
  1. - पायथन में दो त्रिभुजों की सर्वांगसमता जांचने का प्रोग्राम

    इस ट्यूटोरियल में, हम दो त्रिभुजों की सर्वांगसमता की जांच करने जा रहे हैं। हम SSS, SAS, और AAA की जांच करने जा रहे हैं। त्रिभुजों की समानता उन मानदंडों के आधार पर सिद्ध होती है। हमें प्रमेय के आधार पर विभिन्न शर्तों की जांच करनी होगी। उन्हें नीचे दिए गए कोड में देखें। उदाहरण def side_side_side(sid

  1. - Python प्रोग्राम से जांचें कि कोई संख्या दो की घात है या नहीं

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक संख्या दी गई है, हमें जांचने की आवश्यकता है कि संख्या दो की घात है या नहीं। हम इसे नीचे चर्चा किए गए दो दृष्टिकोणों का उपयोग करके हल कर सकते हैं। दृष्टिकोण 1: दिए गए संख्या का बेस 2 पर लॉग लेकर घात प्राप्त क

  1. - Python - जांचें कि क्या दो सूचियों में कोई सामान्य तत्व है

    Python सूचियों का उपयोग करके डेटा हेरफेर करते समय, हम एक ऐसी स्थिति का सामना करते हैं जहां हमें यह जानने की आवश्यकता होती है कि दो सूचियाँ एक-दूसरे से पूरी तरह से अलग हैं या उनमें कोई सामान्य तत्व है। इसे नीचे वर्णित दृष्टिकोणों का उपयोग करके सूचियों में तत्वों की तुलना करके पता लगाया जा सकता है। I