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

पायथन में बाइनरी प्रतिनिधित्व में 1 की संख्या के आधार पर संख्याओं को सॉर्ट करने का प्रोग्राम

मान लीजिए हमारे पास nums में संख्याओं की एक सूची है। हमें सूची को आरोही क्रम में प्रत्येक संख्या के बाइनरी प्रतिनिधित्व में मौजूद 1 की संख्या के आधार पर सॉर्ट करना है। यदि दो संख्याओं में 1 की संख्या समान है, तो उन्हें उनके मानों के आधार पर व्यवस्थित करें।

इसलिए, यदि इनपुट है nums = [4, 1, 12, 7, 6], तो आउटपुट होगा [1, 4, 6, 12, 7], क्योंकि:

  • 4 का बाइनरी रूप 0100 है
  • 1 का बाइनरी रूप 0001 है
  • 6 का बाइनरी रूप 0110 है
  • 12 का बाइनरी रूप 1100 है
  • 7 का बाइनरी रूप 0111 है

इसलिए व्यवस्था [1, 4, 6, 12, 7] है, 1 पहले आता है क्योंकि इसका मान छोटा है, साथ ही 6 इसी कारण से पहले आता है।

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

  • एक फ़ंक्शन compare परिभाषित करें, यह एक संख्या n लेता है
  • यह एक जोड़ी p लौटाता है जिसमें (n के बाइनरी रूप में 1 की संख्या, n का मान) हो
  • nums को compare फ़ंक्शन को प्रत्येक मान में पास करके तुलना से पहले सॉर्ट करें
  • nums लौटाएं।

उदाहरण

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

def solve(nums):
    nums.sort(key=lambda num: (bin(num).count("1"), num))
    return nums
nums = [4, 1, 12, 7, 6]
print(solve(nums))

इनपुट

[4, 1, 12, 7, 6]

आउटपुट

[1, 4, 6, 12, 7]
  1. पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N की सभी संभावित अलग बाइनरी स्ट्रिंग्स गिननी हैं जिनमें लगातार 1 न हों। उदाहरण # स्ट्रिंग्स की संख्या गिनें def countStrings(n): a = [0 for i in range(n)] b = [0 for i in r

  1. पायथन प्रोग्राम: बाइनरी इन्सर्शन सॉर्ट पायथन प्रोग्राम: बाइनरी इन्सर्शन सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें बाइनरी इन्सर्शन सॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है। यहां नाम के अनुसार, हम बाइनरी सर्च की अवधारणा का उपयोग इन्सर्शन सॉर्ट एल्गोरिदम के साथ करते हैं। उदाहरण # सॉर्ट def insertion_sort(arr

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

    समस्या विवरण सबसे पहले हम एक संख्या इनपुट करते हैं फिर bin() फंक्शन का उपयोग करके इस संख्या को बाइनरी में बदलते हैं और अगला आउटपुट स्ट्रिंग के पहले दो वर्ण 0b को हटाते हैं, फिर बाइनरी स्ट्रिंग की लंबाई की गणना करते हैं। उदाहरण इनपुट: 200 आउटपुट: 8 व्याख्या 200 का बाइनरी प्रतिनिधित्व 11001000 है