สมมุติว่ามีจักรยาน n คัน และแต่ละคันสามารถวิ่งได้ 100 กม. เมื่อเติมน้ำมันจนเต็ม เราต้องหาระยะทางสูงสุดที่เราสามารถใช้จักรยานเหล่านี้ได้ ในที่นี้เราสามารถสรุปได้ว่าจักรยานทุกคันมีความคล้ายคลึงกันและจักรยานหนึ่งคันใช้เชื้อเพลิง 1 ลิตรเพื่อครอบคลุมระยะทาง 1 กม. ดังนั้น ถ้า n จักรยานเริ่มจากจุดเดียวกันและวิ่งขนานกัน เราสามารถไปได้เพียง 100 กม. ในกรณีนี้ เป้าหมายของเราคือให้ครอบคลุมระยะทางสูงสุด โดยใช้เชื้อเพลิงน้อยที่สุด และการสิ้นเปลืองเชื้อเพลิงขั้นต่ำหมายถึงจำนวนจักรยานที่ใช้น้อยที่สุด หากจักรยานวิ่งต่อเนื่องจะช่วยให้ครอบคลุมระยะทางมากขึ้น ดังนั้นเราจึงโอนน้ำมันเชื้อเพลิงบางส่วนจากจักรยานยนต์คันที่แล้วไปยังอีกคันหนึ่ง และจะไม่ขับมอเตอร์ไซค์คันสุดท้ายหลังจากจุดใดจุดหนึ่ง แต่ตอนนี้ปัญหาคือต้องถ่ายน้ำมันเป็นระยะทางเท่าใดจึงจะครอบคลุมระยะทางสูงสุดและถังน้ำมันเชื้อเพลิงของส่วนที่เหลือของจักรยานยนต์จะไม่ล้น
ดังนั้น หากอินพุตเท่ากับ n =3 และเชื้อเพลิง =100 เอาต์พุตจะเป็น 183.33
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
cover_diatance :=0
-
ในขณะที่ n> 0 ไม่ใช่ศูนย์ ให้ทำ
-
cover_diatance :=covered_diatance + (เชื้อเพลิง / n)
-
n :=n - 1
-
-
ผลตอบแทนที่ปกคลุม_diatance
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
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