Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm khoảng cách lớn nhất được bao phủ bằng n xe đạp trong Python


Có n chiếc xe đạp, mỗi xe đầy bình đi được 100 km. Tìm khoảng cách tối đa có thể đi được bằng cách chuyển nhiên liệu giữa các xe.

Ví dụ: n=3, fuel=100 → kết quả 183.33 km.

Giải thuật

Chiến lược tối ưu: chạy song song, chuyển nhiên liệu từ xe cuối cho các xe trước, bỏ xe cuối khi hết nhiên liệu. Khoảng cách cộng thêm ở mỗi bước là fuel / số_xe_còn_lại.

  • Khởi tạo covered_distance = 0.
  • Khi n > 0: covered_distance += fuel / n; n -= 1.
  • Trả về covered_distance.

Công thức: 100 * (1 + 1/2 + 1/3 + ... + 1/n) - dãy hòa điều.

Ví dụ

def maximum_distance(n, fuel):
    covered_distance = 0
    while n > 0:
        covered_distance += fuel / n
        n -= 1
    return covered_distance

n = 3
fuel = 100
print(maximum_distance(n, fuel))

Đầu vào

3, 100

Đầu ra

183.33333333333334