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

Chương trình tìm thời gian chờ trung bình trong Python


Giả sử có mảng customers, customers[i] = [arrival_i, time_i], arrival_i là thời điểm khách đến (đã sắp xếp), time_i là thời gian chuẩn bị. Khách đến đặt món, đầu bếp chỉ nấu một món tại một thời điểm, nấu theo thứ tự đặt. Tìm thời gian chờ trung bình.

Ví dụ: customers = [[7,2],[8,4],[10,3],[20,1]], đầu ra = 3.5.

  • Khách 1: đến 7, nấu 7-9, chờ 2
  • Khách 2: đến 8, nấu 9-13, chờ 5
  • Khách 3: đến 10, nấu 13-16, chờ 6
  • Khách 4: đến 20, nấu 20-21, chờ 1
  • Trung bình = (2+5+6+1)/4 = 3.5

Giải pháp

Mô phỏng quá trình nấu nướng:

  • arr := danh sách mới, time := 0
  • Với mỗi (i, j) trong customers:
    • Nếu i > time: time := i + j
    • Ngược lại: time := time + j
    • Thêm (time - i) vào arr
  • Trả về trung bình các giá trị trong arr

Ví dụ minh họa

Xem triển khai sau để hiểu rõ hơn:

def solve(customers):
    arr = []
    time = 0
    for i, j in customers:
        if i > time:
            time = i + j
        else:
            time += j
        arr.append(time - i)
    return sum(arr) / len(arr)

customers = [[7,2],[8,4],[10,3],[20,1]]
print(solve(customers))

Đầu vào

[[7,2],[8,4],[10,3],[20,1]]

Đầu ra

3.5