मान लीजिए n बाइक्स हैं और प्रत्येक पूरी तरह से ईंधन भरे होने पर 100 किमी कवर कर सकती है। हमें इन n बाइक्स का उपयोग करके तय की जा सकने वाली अधिकतम दूरी ढूंढनी है। यहां हम मान सकते हैं कि सभी बाइक्स समान हैं और एक बाइक 1 किमी दूरी तय करने के लिए 1 लीटर ईंधन की खपत करती है। तो, यदि n बाइक्स एक ही बिंदु से शुरू होती हैं और समानांतर चलती हैं, तो हम केवल 100 किमी जा सकते हैं, इस मामले में हमारा लक्ष्य न्यूनतम ईंधन के साथ अधिकतम दूरी तय करना है। और न्यूनतम ईंधन बर्बादी का मतलब है न्यूनतम बाइक्स का उपयोग। यदि बाइक्स क्रमिक रूप से चलती हैं, तो अधिक दूरी तय करने में मदद मिलती है। तो, हम अंतिम बाइक से कुछ मात्रा में ईंधन दूसरी बाइक में ट्रांसफर करते हैं और एक निश्चित बिंदु के बाद अंतिम बाइक नहीं चलाते। लेकिन अब समस्या यह है कि ईंधन ट्रांसफर किस दूरी पर किया जाए ताकि अधिकतम दूरी तय हो सके और बाकी बाइक्स के ईंधन टैंक ओवरफ्लो न हों।
तो, यदि इनपुट n = 3 और fuel = 100 जैसा है, तो आउटपुट 183.33 होगा।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
covered_distance := 0
जब n > 0 शून्येतर है, करें:
covered_distance := covered_distance + (fuel / n)
n := n - 1
covered_distance लौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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