在 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