मान लीजिए कि n बाइक हैं और प्रत्येक पूरी तरह से ईंधन भरने पर 100 किमी की दूरी तय कर सकती है। हमें इन n बाइक्स का उपयोग करके अधिकतम दूरी ज्ञात करनी होगी। यहां हम यह मान सकते हैं कि सभी बाइकें समान हैं और एक बाइक 1 किमी की दूरी तय करने में 1 लीटर ईंधन की खपत करती है। इसलिए, यदि n बाइक एक ही बिंदु से शुरू होती हैं और समानांतर चलती हैं, तो हम केवल 100 किमी जा सकते हैं, इस मामले में हमारा लक्ष्य न्यूनतम ईंधन के साथ अधिकतम दूरी तय करना है। और ईंधन की न्यूनतम बर्बादी का मतलब है कम से कम इस्तेमाल की गई बाइक की संख्या। यदि साइकिलें क्रमानुसार चलती हैं तो अधिक दूरी तय करने में मदद मिलती है। इसलिए, हम कुछ मात्रा में ईंधन पिछली बाइक से दूसरी बाइक में स्थानांतरित करते हैं और अंतिम बाइक को एक निश्चित बिंदु के बाद नहीं चलाते हैं। लेकिन अब समस्या यह है कि फ्यूल ट्रांसफर कितनी दूरी पर करना है ताकि अधिकतम दूरी तय हो और बाकी बाइक्स का फ्यूल टैंक ओवरफ्लो न हो।
इसलिए, यदि इनपुट n =3 और ईंधन =100 जैसा है, तो आउटपुट 183.33
. होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
Covered_diatance :=0
-
जबकि n> 0 शून्य नहीं है, करें
-
Covered_diatance :=Covered_diatance + (ईंधन / n)
-
n :=n - 1
-
-
कवर्ड_डायटेंस लौटाएं
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def maximum_distance(n, fuel): covered_diatance = 0 while (n > 0): covered_diatance = covered_diatance + (fuel / n) n = n - 1 return covered_diatance n = 3 fuel = 100 print(maximum_distance(n, fuel))
इनपुट
3, 100
आउटपुट
183.33333333333334