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

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

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

इसलिए, यदि इनपुट 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 इसी कारण से पहले आता है।

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

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

उदाहरण

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

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 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनने के लिए पायथन प्रोग्राम

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

  1. बाइनरी इंसर्शन सॉर्ट के लिए पायथन प्रोग्राम

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

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

    पहले हम एक नंबर इनपुट करते हैं फिर इस नंबर को बिन () फ़ंक्शन का उपयोग करके बाइनरी में परिवर्तित करते हैं और फिर आउटपुट स्ट्रिंग के पहले दो अक्षर 0b को हटाते हैं, फिर बाइनरी स्ट्रिंग की लंबाई की गणना करते हैं। उदाहरण Input:200 Output:8 स्पष्टीकरण Binary representation of 200 is 10010000 एल्गोरिद