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

एक संख्या खोजें जो न्यूनतम योग देता है जब पायथन में पूर्णांक की हर संख्या के साथ XOR होता है

मान लीजिए कि हमारे पास एक एरे ए है, हमें एक संख्या एक्स ढूंढनी है जैसे कि (ए [0] एक्सओआर एक्स) + (ए [1] एक्सओआर एक्स) + … + ए [एन – 1] एक्सओआर एक्स जितना संभव हो उतना न्यूनतम है।

इसलिए, यदि इनपुट [3, 4, 5, 6, 7] जैसा है, तो आउटपुट एक्स =7, योग =10 होगा।

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

  • एक फ़ंक्शन को परिभाषित करें search_res() । इसमें गिरफ्तारी होगी, n
  • तत्व:=गिरफ्तारी[0]
  • मैं के लिए 0 से लेकर गिरफ्तारी के आकार तक, करते हैं
    • अगर गिरफ्तारी [i]> तत्व, तो
      • तत्व:=गिरफ्तारी[i]
  • p :=का पूर्णांक (तत्व आधार 2 का लघुगणक) + 1
  • X :=0
  • 0 से p की श्रेणी में i के लिए, करें
    • सीएनटी:=0
    • जे के लिए 0 से n की सीमा में, करें
      • अगर arr[j] AND (2^i) शून्य नहीं है, तो
        • सीएनटी:=सीएनटी + 1
    • यदि cnt> (n / 2) का पूर्णांक भाग शून्येतर है, तो
      • X :=X + (2^i)
  • योग :=0
  • मैं के लिए 0 से n की सीमा में, करते हैं
    • योग :=योग +(X XOR arr[i])
  • X और योग लौटाएं

उदाहरण

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

from math import log2
def search_res(arr, n):
   element = arr[0]
   for i in range(len(arr)):
      if(arr[i] > element):
         element = arr[i]
   p = int(log2(element)) + 1
   X = 0
   for i in range(p):
      cnt = 0
      for j in range(n):
         if (arr[j] & (1 << i)):
            cnt += 1
      if (cnt > int(n / 2)):
         X += 1 << i
   sum = 0
   for i in range(n):
      sum += (X ^ arr[i])
   print("X =", X, ", Sum =", sum)
arr = [3, 4, 5, 6, 7]
n = len(arr)
search_res(arr, n)

इनपुट

[3, 4, 5, 6, 7]

आउटपुट

X = 7 , Sum = 10

  1. पायथन प्रोग्राम में किसी संख्या के सम गुणनखंडों का योग ज्ञात करें

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक संख्या दी गई है, हमें संख्या के सभी सम गुणनखंडों का योग प्रदर्शित करना होगा। दृष्टिकोण हम जाँचते हैं कि क्या संख्या विषम है, फिर कोई सम गुणनखंड नहीं हैं, इसलिए 0 लौटाएँ। यदि संख्या सम है, तो हम गणना के माध्

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

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

  1. संख्या के कारकों का न्यूनतम योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या इनपुट को देखते हुए, दी गई संख्या के गुणनखंडों का न्यूनतम योग ज्ञात करें। यहां हम सभी कारकों और उनके संगत योग की गणना करेंगे और फिर उनमें से न्यूनतम का पता लगाएंगे। इसलिए संख्या के गुणनफल का न्यूनतम योग ज्