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

जांचें कि क्या पायथन में दिए गए सेकंड को जोड़कर या घटाकर केवल 12 बजे तक वापस आना संभव है

मान लीजिए कि हमारे पास n भिन्न दूसरे मानों की एक सरणी है। हमें यह जांचना है कि क्या 12 बजे से शुरू करना संभव है और दिए गए सेकंड को जोड़कर या घटाकर 12 पर वापस जाना संभव है या नहीं। हम दिए गए सभी सेकंड का एक बार उपयोग कर सकते हैं, हम या तो सेकंड जोड़ सकते हैं या घटा सकते हैं।

इसलिए, यदि इनपुट सेकंड =[40,90,50] की तरह है, तो आउटपुट सही होगा क्योंकि यह 40 जोड़ सकता है फिर 90 घटा सकता है और फिर 50 जोड़ सकता है।

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

  • आकार:=2^(सेकंड सरणी की लंबाई)
  • सी श्रेणी में 0 से आकार -1 के लिए, करें
    • जोड़ें:=0
    • जे के लिए 0 से सेकंड के आकार में - 1, करो
      • यदि c और (2^j) शून्य नहीं है, तो
        • जोड़ें:=+ सेकंड जोड़ें[j]
      • अन्यथा,
        • जोड़ें:=जोड़ें-सेकंड[j]
    • यदि जोड़ (24 * 60) से विभाज्य है, तो
      • सही लौटें
  • झूठी वापसी

उदाहरण

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

def solve(seconds):
   size = 2**len(seconds)
   for c in range(size):
      add = 0
      for j in range(len(seconds)) :
         if c & (1 << j):
            add += seconds[j]
         else:
            add -= seconds[j]
      if add % (24 * 60) == 0:
         return True
   return False
seconds = [40,90,50]
print(solve(seconds))

इनपुट

[40,90,50]

आउटपुट

True

  1. - जांचें कि क्या पायथन में द्वीप पर जीवित रहना संभव है

    मान लीजिए कोई द्वीप है। उस स्थान पर केवल एक ही स्टोर है, यह स्टोर रविवार को छोड़कर हमेशा खुला रहता है। हमारे पास इनपुट के रूप में निम्नलिखित मान हैं - N (अधिकतम संख्या में कोई व्यक्ति प्रतिदिन खरीद सकता है)। S (किसी को जीवित रहने के लिए जितने दिनों की आवश्यकता होती है)। M (जीवित रहने के लिए प्रतिदि

  1. जांचें कि क्या वेक्टर ए को घुमाकर और वेक्टर सी को पायथन में जोड़कर वेक्टर बी तक पहुंचना संभव है जांचें कि क्या वेक्टर ए को घुमाकर और वेक्टर सी को पायथन में जोड़कर वेक्टर बी तक पहुंचना संभव है

    मान लीजिए हमारे पास 2D तल में तीन सदिश x, y और z हैं। हमें यह जांचना होगा कि क्या हम वेक्टर y को सदिश x से 90 डिग्री (घड़ी की दिशा में) घुमाकर प्राप्त कर सकते हैं या इसमें आवश्यकतानुसार जितनी बार z जोड़ सकते हैं। इसलिए, यदि इनपुट x =(-4, -2) y =(-1, 2) z =(-2, -1) जैसा है, तो आउटपुट सही होगा क्योंक

  1. - पायथन में एन सूचियों के सभी संभावित क्रमपरिवर्तन

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