在 Python 中查找平均等待时间的程序

假设我们有一个数组customers,其中customers[i] = 持有一对[arrival_i, time_i],这里arrival_i 是第i 个顾客的到达时间。并且到达时间从少到高排序。而 time_i 是准备第 i 个客户的订单所需的时间。现在,当顾客到达时,他/她下订单,当厨师空闲时,唯一的订单开始准备。厨师一次不会为多个顾客准备食物。他准备好按顺序给他们下订单。我们必须找到所有客户的平均等待时间。

因此,如果输入类似于customers = [[7,2],[8,4],[10,3],[20,1]],那么输出将是3.5,因为,

  • 第一个顾客在时间 7 出现,厨师接受订单并在时间 7 立即开始准备,并在时间 9 完成,因此第一个顾客的等待时间为 9 - 7 = 2。

  • 第二个顾客在时间 8 时来了,厨师接受他的订单并在时间 9 开始准备它,并在时间 13 完成,所以第二个顾客的等待时间是 13 - 8 = 5。

  • 第三位顾客在时间 10 来了,厨师接受他的订单并在时间 13 开始准备它,并在时间 16 完成,所以第三位顾客的等待时间是 16 - 10 = 6。

  • 第四位顾客在时间 20 来了,厨师接受他的订单并在时间 20 立即开始准备,并在时间 21 完成,因此第四位顾客的等待时间为 21 - 20 = 1。

  • 所以平均等待时间 = (2 + 5 + 6 + 1) / 4 = 3.5。

示例

让我们看看以下实现以获得更好的理解 -

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))

输入

[[7,2],[8,4],[10,3],[20,1]]
输出结果
3