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

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

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

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

होगा।

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

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

  • n :=अंकों का आकार
  • तीन खाली सूचियों को परिभाषित करें cnt, कुल, परिणाम
  • प्रत्येक i के लिए अंकों में, करें
    • गिनती:=0, कुल:=0
    • प्राइम:=एक नई सूची
    • प्रत्येक j के लिए अंकों में, करें
      • अगर (j mod k सभी k रेंज 2 से j के लिए) सत्य है, तो
        • प्राइम के अंत में j डालें
    • प्राइम में प्रत्येक j के लिए, करें
      • अगर i mod j 0 है, तो
        • गिनती :=गिनती + 1
    • अगर गिनती सम है, तो
      • cnt के अंत में 'विषम' डालें
    • अन्यथा,
      • cnt के अंत में 'सम' डालें
    • जे के लिए 1 से i की श्रेणी में, करें
      • यदि i mod j 0 के समान है, तो
        • कुल:=टोट + जे
    • यदि योग विषम है, तो
      • कुल के अंत में 'विषम' डालें
    • अन्यथा,
      • कुल के अंत में 'सम' डालें
  • मैं के लिए 0 से n-2 की सीमा में, करते हैं
    • जे के लिए i+1 से n-1 की श्रेणी में, करें
      • यदि cnt[i] cnt[j] के समान है या कुल[i] कुल [j] के समान है, तो
        • नतीजे डालें[i] परिणाम के अंत में
        • यदि j, n-2 के समान है, तो
          • नतीजे डालें[j] परिणाम के अंत में
  • परिणाम:=परिणाम से एक नए सेट से एक नई सूची
  • परिणाम का वापसी आकार

उदाहरण

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

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 मान के साथ दिए गए सरणी से एक जोड़ी खोजें

    मान लीजिए कि हमारे पास एन पूर्णांक के साथ एक सरणी गिरफ्तार है, हमें सरणी से एआर [i] और एआर [जे] ढूंढना होगा जैसे कि एआर [i] कैर [जे] जितना संभव हो सके। यदि एक से अधिक जोड़े हैं, तो उनमें से किसी एक को लौटा दें। इसलिए, यदि इनपुट [4, 1, 2] जैसा है, तो आउटपुट 4 2 होगा जैसे 4सी1 =4, 4सी2 =6 और 2सी1 =2,

  1. पायथन में दिए गए बिटोनिक अनुक्रम में बिटोनिक बिंदु खोजें

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

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

    =1 तो हम सरणी के सभी तत्वों को उलट देते हैं। एल्गोरिदम Revarray(A,n,p) /* A is an integer Array, n is the size of an array and every sub-array of size p starting from the beginning of the array and reverse it.*/ Step 1: i is the loop control variable which is initialized by 0. Step 2: using while l