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

पायथन का उपयोग करके किसी संख्या के द्विआधारी रूप में 1s की सबसे लंबी दूरी खोजने का कार्यक्रम

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

इसलिए, यदि इनपुट 71 की तरह है, तो आउटपुट 4 होगा, क्योंकि बाइनरी में 71 1000111 है। अब चार हैं, और पहला 1 और दूसरा 1 दूरी पर है। अन्य सभी एक दूरी पर हैं। यहां सबसे लंबी दूरी 4 है।

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

  • के:=एन के बाइनरी प्रतिनिधित्व के बिट्स की सूची बनाएं

  • अधिकतम:=0, सी:=0, एस:=0

  • झंडा :=झूठा

  • मेरे लिए 0 से K के आकार की सीमा में, करें

    • अगर K[i] '1' है और C 0 है और झंडा गलत है, तो

      • सी:=मैं

      • झंडा :=सच

    • अन्यथा जब K[i] '1' और ध्वज हो, तब

      • एस:=मैं

      • अगर मैक्स

        • अधिकतम:=|एस-सी|

      • सी:=एस

  • वापसी अधिकतम

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

उदाहरण

def solve(N):
   B = bin(N).replace('0b','')
   K = str(B)
   K = list(K)
   Max = 0
   C = 0
   S = 0
   Flag = False
   for i in range(len(K)):
      if K[i] is '1' and C is 0 and Flag is False:
         C = i
         Flag = True
      elif K[i] is '1' and Flag:
         S = i
         if Max<abs(S-C):
            Max = abs(S-C)
         C = S
   return Max
n = 71
print(solve(n))

इनपुट

71

आउटपुट

4

  1. पायथन का उपयोग करके बाइनरी ग्रिड की व्यवस्था करने के लिए न्यूनतम स्वैप खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक n x n बाइनरी मैट्रिक्स है। हम इस पर एक ऑपरेशन कर सकते हैं जैसे, एक चरण में हम दो आसन्न पंक्तियों का चयन करते हैं और उन्हें स्वैप करते हैं। हमें आवश्यक न्यूनतम स्वैप की संख्या गिननी होगी, ताकि मैट्रिक्स के प्रमुख विकर्ण के ऊपर सभी नोड्स 0 हों। यदि ऐसा कोई समाधान नहीं है, तो

  1. पायथन प्रोग्राम यह पता लगाने के लिए कि कोई संख्या प्राइम है या नहीं, रिकर्सन का उपयोग करके प्राइम है

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

  1. पायथन में सबसे लंबी श्रृंखला बनाने वाले बक्से की संख्या खोजने का कार्यक्रम?

    मान लीजिए कि हमारे पास बक्सों की एक सूची है, यहाँ प्रत्येक प्रविष्टि के दो मान हैं [प्रारंभ, अंत] (प्रारंभ <अंत)। हम दो बक्सों को जोड़ सकते हैं यदि एक का अंत दूसरे के प्रारंभ के बराबर हो। हमें बक्सों की सबसे लंबी श्रृंखला की लंबाई ज्ञात करनी है। इसलिए, यदि इनपुट ब्लॉक की तरह है =[ [4, 5], [5, 6], [