Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาระยะทางสูงสุดที่ครอบคลุมโดยใช้ n bikes ใน Python


สมมุติว่ามีจักรยาน 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