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

पायथन में P द्वारा योग को विभाज्य बनाने का कार्यक्रम

मान लीजिए कि हमारे पास एक सरणी संख्या और एक अन्य मान p है, तो हम सबसे छोटी उपसरणी (संपूर्ण सरणी नहीं) को हटाते हैं जैसे कि शेष मानों का योग p से विभाज्य हो। हमें सबसे छोटे सबअरे की लंबाई का पता लगाना है जिसे हमें हटाने की जरूरत है, अगर ऐसा कोई सबरे नहीं है तो रिटर्न -1।

इसलिए, यदि इनपुट nums =[8,2,6,5,3] p =7 जैसा है, तो आउटपुट 1 होगा क्योंकि यदि हम 3 को हटा दें, तो कुल योग 21 होगा और वह 7 से विभाज्य है। /पी>

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

  • उत्तर:=अनंत
  • s :=(संख्याओं में सभी तत्वों का योग) mod p
  • d :=एक मैप में की-वैल्यू पेयर होता है {0:-1}
  • सह:=0
  • यदि s 0 के समान है, तो
    • वापसी 0
  • मैं के लिए 0 से लेकर अंकों के आकार तक, करें
    • सह:=सह + अंक[i]
    • r :=कम मॉड p
    • अगर (r-s)mod p, d में मौजूद है, तो
      • उत्तर :=न्यूनतम उत्तर और i - d[(r-s) mod p]
    • d[r] :=i
  • वापसी उत्तर यदि उत्तर <अंकों का आकार अन्यथा -1

उदाहरण

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

def solve(nums, p):
   ans = float("inf")
   s = sum(nums) % p
   d = {0:-1}
   cum = 0
   if s == 0:
      return 0
   for i in range(len(nums)):
      cum+=nums[i]
      r = cum%p
      if (r-s)%p in d:
         ans = min(ans, i-d[(r-s)%p])
      d[r] = i
   return ans if ans<len(nums) else -1

nums = [8,2,6,5,3]
p = 7
print(solve(nums, p))

इनपुट

[8,2,6,5,3], 7

आउटपुट

1

  1. पायथन में एक सूची के गैर-आसन्न तत्वों का सबसे बड़ा योग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हम एक फ़ंक्शन को परिभाषित करेंगे जो गैर-आसन्न संख्याओं का सबसे बड़ा योग देता है। यहां अंक 0 या ऋणात्मक हो सकते हैं। इसलिए, यदि इनपुट [3, 5, 7, 3, 6] जैसा है, तो आउटपुट 16 होगा, क्योंकि हम 16 प्राप्त करने के लिए 3, 7, और 6 ले सकते ह

  1. पायथन में सभी सन्निहित उपन्यासकारों के योग का योग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, अब प्रत्येक सन्निहित उप-सरणी पर विचार करें। इनमें से प्रत्येक उप-सरणी का योग करें और इन सभी मानों का योग लौटाएं। अंत में, परिणाम को 10 ** 9 + 7 से संशोधित करें। इसलिए, यदि इनपुट संख्या =[3, 4, 6] की तरह है, तो आउटपुट 43 होगा, क्यों

  1. पायथन में भारतीय ध्वज बनाने का कार्यक्रम

    ग्राफ बनाने के लिए पायथन के पुस्तकालयों में बहुत व्यापक विशेषताएं हैं जो हमें न केवल चार्ट दे सकती हैं बल्कि हमें झंडे जैसे अन्य आरेखों को खींचने के लिए लचीलापन भी दे सकती हैं। उस अर्थ में उन मॉड्यूलों में कलात्मक स्पर्श होता है। इस लेख में हम देखेंगे कि numpy और matplotlib पुस्तकालयों का उपयोग करके