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

पायथन में 0 से n तक की रेंज में सभी संख्याओं के सेट बिट्स की कुल संख्या गिनने का प्रोग्राम


मान लीजिए हमारे पास एक संख्या num है। रेंज 0 ≤ i ≤ num में प्रत्येक संख्या i के लिए हमें उनके बाइनरी समकक्ष में 1 की संख्या की गणना करनी है और उन्हें एक सूची के रूप में वापस करना है। इसलिए यदि संख्या 5 है, तो संख्याएं [0, 1, 2, 3, 4, 5] हैं, और इन संख्याओं में 1 की संख्या [0, 1, 1, 2, 1, 2] है, इसलिए यह 7 वापस करेगा।

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

  • res := एक सरणी जिसमें num + 1 संख्या में 0 हों

  • offset := 0

  • i के लिए 1 से num + 1 तक की रेंज में

    • यदि i और i - 1 = 0, तो res[i] := 1 और offset := 0

    • अन्यथा offset को 1 से बढ़ाएं और res[i] := 1 + res[offset]

  • res के तत्वों का योग वापस करें

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

उदाहरण

class Solution:    def countBits(self, num):       result = [0] * (num+1)       offset = 0       for i in range(1,num+1):          if i & i-1 == 0:             result[i] = 1             offset = 0          else:             offset+=1             result[i] = 1 + result[offset]       return sum(result) ob1 = Solution() print(ob1.countBits(5))

इनपुट

5

आउटपुट

7

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

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

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

    समस्या विवरण एक धनात्मक संख्या और बिट्स की रेंज दी गई है। हमारा कार्य उस रेंज में अनसेट बिट्स (0) की संख्या गिनना है। उदाहरण इनपुट: n = 50, प्रारंभिक पता = 2, अंतिम पता = 5 आउटपुट: 2 रेंज 2 से 5 में 2 अनसेट बिट्स हैं। एल्गोरिदम bin() का उपयोग करके n को बाइनरी में बदलें। पहले दो वर्ण (0b) हटाएं।

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

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