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

पायथन में फेरिस व्हील से लाभ को अधिकतम करने के लिए आवश्यक न्यूनतम घुमावों का पता लगाने का कार्यक्रम

मान लीजिए कि एक फेरिस व्हील है जिसमें चार केबिन हैं और प्रत्येक केबिन में चार यात्री हो सकते हैं। पहिया वामावर्त घूमता है, और प्रत्येक घुमाव के लिए, इसमें 'रन' राशि खर्च होती है। अब हमारे पास एक सरणी 'कस्ट' है जिसमें n आइटम हैं और प्रत्येक आइटम i-वें रोटेशन से पहले फेरिस व्हील में आने की प्रतीक्षा कर रहे लोगों की संख्या को दर्शाता है। पहिया पर चढ़ने के लिए, प्रत्येक ग्राहक को 'बोर्ड' की राशि का भुगतान करना पड़ता है, और इतना पैसा पहिया के एक दक्षिणावर्त घुमाव के लिए होता है। किसी भी केबिन में सीट खाली होने पर लाइन में खड़े लोगों को इंतजार नहीं करना चाहिए। इसलिए डेटा को देखते हुए, हमें कम से कम आवश्यक घुमावों का पता लगाना होगा ताकि लाभ को अधिकतम किया जा सके।

पायथन में फेरिस व्हील से लाभ को अधिकतम करने के लिए आवश्यक न्यूनतम घुमावों का पता लगाने का कार्यक्रम

इसलिए, यदि इनपुट cust =[6,4], बोर्ड =6, रन =4 जैसा है, तो आउटपुट 3

होगा।

पहले 6 लोग लाइन में इंतजार कर रहे हैं। तो पहले 4 लोग पहले केबिन में जाते हैं, और बाकी लोग अगले केबिन की प्रतीक्षा करते हैं।

पहिया घूमता है, और दूसरा केबिन आता है। इस बीच, 4 और लोग लाइन में लग जाते हैं। तो अगले 4 लोग अगले केबिन में प्रतीक्षा कर रहे हैं।

पहिया फिर से घूमता है, और शेष तीन ग्राहक अगले केबिन में आ जाते हैं।

इसलिए, सभी ग्राहकों को सेवा प्रदान करने के लिए कम से कम तीन रोटेशन की आवश्यकता है।

इन घुमावों से प्राप्त होने वाला अधिकतम लाभ है (10 * 6) - (3 * 4) =48.

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

  • रेस :=-1

  • एमएसटी:=0

  • टीएमपी:=0

  • wt:=0

  • प्रत्येक अनुक्रमणिका idx और मूल्य मान के लिए, करें

    • wt :=wt + वैल

    • chg :=न्यूनतम (4, wt)

    • wt :=wt - chg

    • tmp :=tmp + chg * बोर्ड - रन

    • अगर एमएसटी

      • रेस :=idx + 1

      • एमएसटी:=टीएमपी

  • x :=wt / 4

  • y:=wt मॉड 4

  • अगर 4 * बोर्ड> रन करें, तो

    • रेस :=रेस + एक्स

  • अगर y * बोर्ड> रन करें, तो

    • रेस :=रेस + 1

  • रिटर्न रेस

उदाहरण

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

def solve(cust, board, run):
   res = -1
   mst = 0
   tmp = 0
   wt = 0
   for idx, val in enumerate(cust):
      wt += val
      chg = min(4, wt)
      wt -= chg
      tmp += chg * board - run
      if mst < tmp:
         res, mst = idx+1, tmp
   x, y = divmod(wt, 4)
   if 4 * board > run:
      res += x
   if y * board > run:
      res += 1
   return res

print(solve([6,4], 6, 4))

इनपुट

[6,4], 6, 4

आउटपुट

3

  1. ग्राफ़ में सबसे बड़े गुट के न्यूनतम आकार का पता लगाने का कार्यक्रम (पायथन)

    मान लीजिए कि हमें एक ग्राफ दिया गया है और ग्राफ में सबसे बड़े समूह का न्यूनतम आकार ज्ञात करने के लिए कहा गया है। ग्राफ़ का एक समूह एक ग्राफ़ का एक उपसमुच्चय होता है, जहाँ प्रत्येक शीर्ष जोड़े आसन्न होते हैं, अर्थात प्रत्येक जोड़े के बीच एक किनारा मौजूद होता है। एक ग्राफ में सबसे बड़ा गुट ढूँढना बहुप

  1. यह पता लगाने के लिए कार्यक्रम कि क्या पायथन में सभी के द्वारा ग्राफ़ को ट्रैवर्स किया जा सकता है

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

  1. पायथन में एक फ़ोल्डर से घर पर लौटने के लिए आवश्यक न्यूनतम छलांग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक लॉग है जहां हमारे पास फ़ोल्डरों में प्रवेश करने का पथ है, तो अलग-अलग प्रतीक हो सकते हैं जैसे - ../ :वर्तमान फ़ोल्डर से मूल फ़ोल्डर में ले जाएँ। (यदि हम मुख्य फ़ोल्डर में हैं, तो स्थान न बदलें)। ./ :वर्तमान फ़ोल्डर में बने रहें। x/ :x नाम के चाइल्ड फोल्डर में ले जाए