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

पायथन में दिए गए सरणी के किसी भी अनुक्रम का अधिकतम आकार खोजने का प्रोग्राम जहां हर जोड़ी अच्छी है


मान लीजिए हमारे पास आकार n का एक अनुक्रम nums है। हमें nums के उस सबसीक्वेंस का अधिकतम आकार खोजना है जिसमें हर जोड़ी (p, q) एक अच्छी जोड़ी है? एक जोड़ी को अच्छी जोड़ी कहा जाता है यदि और केवल यदि यह इनमें से कम से कम एक शर्त को पूरा करती है: 1. p के विशिष्ट अभाज्य भाजकों की संख्या की समता q के समान है। उदाहरण के लिए, मान 18 के दो विशिष्ट अभाज्य भाजक हैं: 2 और 3। 2. p के सभी धनात्मक भाजकों के योग की समता q के समान है।

तो, यदि इनपुट nums = [2,3,6,8] है, तो आउटपुट 3 होगा।

पायथन में दिए गए सरणी के किसी भी अनुक्रम का अधिकतम आकार खोजने का प्रोग्राम जहां हर जोड़ी अच्छी है

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

  • n := nums का आकार
  • तीन खाली सूचियाँ cnt, total, result परिभाषित करें
  • nums में प्रत्येक i के लिए, करें
    • count := 0, tot := 0
    • prime := एक नई सूची
    • nums में प्रत्येक j के लिए, करें
      • यदि (j mod k, 2 से j तक की रेंज में सभी k के लिए) सत्य है, तो
        • j को prime के अंत में डालें
    • prime में प्रत्येक j के लिए, करें
      • यदि i mod j, 0 है, तो
        • count := count + 1
    • यदि count सम है, तो
      • 'odd' को cnt के अंत में डालें
    • अन्यथा,
      • 'even' को cnt के अंत में डालें
    • j को 1 से i तक की रेंज में, करें
      • यदि i mod j, 0 के समान है, तो
        • tot := tot + j
    • यदि tot विषम है, तो
      • 'odd' को total के अंत में डालें
    • अन्यथा,
      • 'even' को total के अंत में डालें
  • i को 0 से n-2 तक की रेंज में, करें
    • j को i+1 से n - 1 तक की रेंज में, करें
      • यदि cnt[i], cnt[j] के समान है या total[i], total[j] के समान है, तो
        • nums[i] को result के अंत में डालें
        • यदि j, n-2 के समान है, तो
          • nums[j] को result के अंत में डालें
  • result := result से एक नए सेट से एक नई सूची
  • result का आकार लौटाएं

उदाहरण

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

def solve(nums): n = len(nums) cnt = [] total = [] result = [] for i in nums: count = 0 tot = 0 prime = [] for j in nums: if all(j % k for k in range(2, j)) == True: prime.append(j) for j in prime: if i % j == 0: count += 1 if count % 2: cnt.append('odd') else: cnt.append('even') for j in range(1,i+1): if i % j == 0: tot += j if tot % 2: total.append('odd') else: total.append('even') for i in range(n-1): for j in range(i+1, n): if cnt[i] == cnt[j] or total[i] == total[j]: result.append(nums[i]) if j == n-1: result.append(nums[j]) result = list(set(result)) return len(result) nums = [2,3,6,8] print(solve(nums))

इनपुट

15, 3, 8 

आउटपुट

3

  1. - पायथन में दिए गए ऐरे से अधिकतम nCr मान वाला युग्म खोजें

    मान लीजिए हमारे पास n पूर्णांकों का एक ऐरे arr है। हमें ऐरे से arr[i] और arr[j] ढूंढने हैं जैसे कि arr[i]Carr[j] यथासंभव बड़ा हो। यदि एक से अधिक युग्म हैं, तो उनमें से कोई भी एक लौटाएं। इसलिए, यदि इनपुट [4, 1, 2] है, तो आउटपुट 4 2 होगा क्योंकि 4C1 = 4, 4C2 = 6 और 2C1 = 2, इसलिए (4,2) ही एकमात्र इच्

  1. - Python - दी गई बिटोनिक सीक्वेंस में बिटोनिक पॉइंट ढूंढना

    मान लीजिए हमारे पास एक बिटोनिक सीक्वेंस है, हमें इसमें बिटोनिक पॉइंट ढूंढना है। जैसा कि हम जानते हैं, एक बिटोनिक सीक्वेंस संख्याओं का एक क्रम है जो पहले सख्ती से बढ़ रहा है फिर एक निश्चित बिंदु के बाद सख्ती से घट रहा है। यह बिंदु बिटोनिक पॉइंट है। केवल बढ़ते या केवल घटते क्रम के लिए, बिटोनिक पॉइंट उ

  1. - दिए गए आकार के समूहों में सरणी को उल्टा करने का पायथन प्रोग्राम

    समस्या विवरण =n तो हम सरणी के सभी तत्वों को उल्टा कर देते हैं। एल्गोरिदम i लूप कंट्रोल वेरिएबल है जिसे 0 से आरंभ किया गया है। व्हाइल लूप का उपयोग करके जांचें कि i, n से कम है या नहीं। यदि हां तो: L = i (बाएं सब सरणी) R = min(i + p - 1, n - 1) (दाएं सब सरणी) व्हाइल लूप का उपयोग करक