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

जांचें कि क्या सरणी को दो उप-सरणी में विभाजित किया जा सकता है जैसे कि उनका पूर्ण अंतर पायथन में Ks है

मान लीजिए, हमें एक सरणी "input_list" प्रदान की जाती है जिसमें पूर्णांक संख्याएं होती हैं। हमें दी गई समस्या यह जांचना है कि क्या दिए गए सरणी को दो हिस्सों में विभाजित किया जा सकता है, जहां दो हिस्सों के योग का अंतर संख्या n के बराबर है। नंबर n पहले ही प्रदान किया जाएगा।

इसलिए, यदि इनपुट इनपुट_लिस्ट =[9,2,5,6], n =0 जैसा है, तो आउटपुट "संभव" होगा।

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

  • list_total :=input_list के मानों का योग
  • अगर (list_total - n) मॉड 2 1 के समान है, तो
    • वापसी "संभव नहीं"
  • वैल:=(list_total - n) / 2
  • temp_sum :=0;
  • मेरे लिए 0 से लेकर input_list के आकार के लिए, करें
    • temp_sum:=temp_sum + input_list[i]
    • यदि temp_sum वैल के समान है, तो
      • "संभव" लौटाएं
  • वापसी "संभव नहीं"

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

उदाहरण

def solve(input_list,n):
   list_total = sum(input_list)
   if (list_total - n) % 2 == 1:
      return "Not Possible"
   val = (list_total - n) / 2
   temp_sum = 0;
   for i in range (0,len(input_list)):
      temp_sum += input_list[i]
      if (temp_sum == val):
         return "Possible"
   return "Not Possible"
input_list= [9,2,5,6]
n = 0
print(solve(input_list, n))

इनपुट

[9,2,5,6], 0

आउटपुट

Possible

  1. शतरंज की बिसात में न्यूनतम कट इस तरह से बनाए जा सकते हैं कि इसे पायथन में 2 भागों में विभाजित न किया जाए

    मान लीजिए कि हमारे पास एक ए एक्स बी शतरंज की बिसात (मैट्रिक्स) है, तो हमें इस बोर्ड में कटौती की अधिकतम संख्या की गणना करनी होगी ताकि बोर्ड 2 भागों में विभाजित न हो। इसलिए, यदि इनपुट A =2 और B =4 जैसा है, तो आउटपुट 3 . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - res :=0 res :=(M-1) *

  1. उन योगों का पता लगाएं जिनके लिए एक सरणी को समान योग के उप-सरणी में पायथन में विभाजित किया जा सकता है

    मान लीजिए कि हमारे पास पूर्णांक ए की एक सरणी है; हमें योग के लिए सभी मानों को खोजना होगा ताकि एक मान के लिए योग [i] सरणी को योग योग [i] के उप-सरणी में विभाजित किया जा सके। यदि हम सरणी को समान योग के उप-सरणी में विभाजित नहीं कर सकते हैं तो -1 लौटाएं। इसलिए, यदि इनपुट ए =[2, 4, 2, 2, 2, 4, 2, 6] जैसा

  1. दिए गए दो सरणियों से उप-सरणी खोजें जैसे कि उनके पास पायथन में समान योग है

    मान लीजिए कि हमारे पास दो सरणियाँ P और Q हैं जिनका आकार N है, वे संख्या 1 से N तक धारण कर रहे हैं। हमें दिए गए सरणियों से उप-सरणी ढूंढनी है ताकि उनका योग समान हो। अंत में ऐसे उप-सरणी के सूचकांक वापस करें। अगर कोई समाधान नहीं है, तो -1 लौटें। इसलिए, यदि इनपुट P =[2, 3, 4, 5, 6], Q =[9, 3, 2, 6, 5] जै