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

Python में सर्कुलर ट्यूब में गेंदों के टकराने की संख्या खोजें

मान लीजिए, एक सर्कुलर ट्यूब में n गेंदें हैं। ट्यूब 100 मीटर लंबी है और प्रारंभ में, ट्यूब में प्रत्येक गेंद एक बिंदु से i मीटर दूर है जिसे हम प्रारंभिक बिंदु कहते हैं। अब गेंदें ट्यूब के भीतर सर्कुलर क्रम में अलग-अलग दिशाओं में यात्रा करना शुरू करती हैं। गेंदें ट्यूब के भीतर 0.1 मीटर प्रति सेकंड की गति से यात्रा करती हैं। जब दो गेंदें एक बिंदु पर मिलती हैं, तो एक टकराव होता है और गेंदें अपनी यात्रा की दिशा बदल लेती हैं। यदि यह प्रक्रिया लंबे समय तक चलती है, मान लीजिए 10^9 + 6 सेकंड; हमें गेंदों के टकराव में संलग्न होने की संख्या ढूंढनी है। गेंदों की प्रारंभिक दूरी प्रारंभिक बिंदु से इनपुट के रूप में दी गई है।

इसलिए, यदि इनपुट है: input_array = [0, 10], तो आउटपुट 400000 होगा।

दो गेंदें हैं, और प्रारंभिक रेखा से उनकी प्रारंभिक दूरी इनपुट के रूप में दी गई है। यदि उनकी दिशाएं समान हैं, तो वे कभी टकराव में संलग्न नहीं होंगी। लेकिन, यदि उनकी दिशाएं अलग हैं, तो वे कई बार टकराएंगी। एक गेंद दूसरी से ठीक 400000 बार टकराएगी।

हल करने के चरण

  • input_array सूची को सॉर्ट करें
  • size := input_array का आकार
  • lap_count := (10^5) * 2
  • output := 2 * lap_count * floor(size / 2) * (size - floor(size / 2))
  • stop := 0
  • i को 0 से size - 1 तक के लिए:
    • यदि stop != 1:
      • यदि input_array[i] + 1 == input_array[i+1], तो: output += 2, stop := 1
      • अन्यथा, stop := 0
    • अन्यथा, stop := 0
  • output वापस करें

उदाहरण

def solve(input_array):
    input_array.sort()
    size = len(input_array)
    lap_count = (10**5) * 2
    output = 2 * lap_count * (size // 2) * (size - size // 2)
    stop = 0
    for i in range(size - 1):
        if stop != 1:
            if input_array[i] + 1 == input_array[i+1]:
                output += 2
                stop = 1
            else:
                stop = 0
        else:
            stop = 0
    return output

print(solve([0, 10]))

इनपुट

[0, 10]

आउटपुट

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

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्ष हैं जो 0 से n-1 तक क्रमांकित हैं। ग्राफ अनिर्देशित है और प्रत्येक किनारे का एक भार है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को

  1. Python में गोदाम में कितने बॉक्स रखे जा सकते हैं, इसका प्रोग्राम Python में गोदाम में कितने बॉक्स रखे जा सकते हैं, इसका प्रोग्राम

    मान लीजिए, हमारे पास दो सरणियाँ हैं जिनमें पूर्णांक हैं। एक सूची में कुछ यूनिट चौड़ाई वाले बॉक्स की ऊंचाई है और दूसरी सरणी में गोदाम में कमरों की ऊंचाई है। कमरे 0...n से नंबर किए गए हैं, और कमरों की ऊंचाई सरणी godown में उनके संबंधित इंडेक्स पर दी गई है। हमें उन बॉक्स की संख्या पता करनी है जिन्हें ग

  1. Python में कितने क्यूब कटे हैं, यह खोजने का प्रोग्राम Python में कितने क्यूब कटे हैं, यह खोजने का प्रोग्राम

    मान लीजिए, a, b, और c आयामों के कई क्यूब्स हैं, और उनका उपयोग करके axbxc आयाम का एक नया बॉक्स बनाया जाता है। a, b, और c pairwise को-प्राइम हैं; gcd(a, b) = gcd(b,c) = gcd(c, a) = 1। हमें एक सिंगल स्लाइस के साथ बॉक्स को दो टुकड़ों में काटना है जैसा कि चित्र में दिखाया गया है। हमें यह पता करना है कि य