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

पायथन प्रोग्राम यह पता लगाने के लिए कि एक गोलाकार ट्यूब में गेंदें कितनी बार टकराएंगी

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

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

. होगा

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

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

  • सूची को क्रमबद्ध करें input_array
  • आकार:=input_array का आकार
  • lap_count :=(10^5)*2
  • आउटपुट :=2 * lap_count * फ्लोर वैल्यू (आकार / 2) * (आकार - फ्लोर वैल्यू (आकार / 2))
  • रोकें:=0
  • मैं के लिए 0 से आकार -1 की सीमा में, करो
  • यदि स्टॉप 1 के समान नहीं है, तो
    • अगर input_array[i] + 1 input_array[i+1] के समान है, तो
      • आउटपुट:=आउटपुट + 2
      • रोकें:=1
    • अन्यथा,
      • रोकें:=0
  • अन्यथा,
    • रोकें:=0
  • रिटर्न आउटपुट

उदाहरण

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

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. पायथन में गोदाम में कितने बक्से रखे जा सकते हैं यह पता लगाने के लिए कार्यक्रम

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

  1. कितने क्यूब्स काटे गए यह पता लगाने के लिए पायथन प्रोग्राम

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