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

Python में दिए गए सेकंड को जोड़/घटाकर 12 बजे वापस आने की संभावना की जांच कैसे करें?

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

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

हल करने के चरण

  • size := 2^(seconds सरणी की लंबाई)
  • रेंज 0 से size - 1 तक के लिए c, करें:
    • add := 0
    • रेंज 0 से seconds के आकार - 1 तक के लिए j, करें:
      • यदि c AND (2^j) शून्येतर है, तो:
        • add := add + seconds[j]
      • अन्यथा,
        • add := add - seconds[j]
    • यदि add, (24 * 60) से विभाज्य है, तो:
      • True लौटाएं
  • False लौटाएं

उदाहरण

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. - Python में द्वीप पर जीवित रहने की संभावना की जांच कैसे करें?

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

  1. Python में वेक्टर A को घुमाकर और वेक्टर C जोड़कर वेक्टर B तक पहुंचने की संभावना की जांच कैसे करें? Python में वेक्टर A को घुमाकर और वेक्टर C जोड़कर वेक्टर B तक पहुंचने की संभावना की जांच कैसे करें?

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

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

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