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

在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。

要解决这个问题,我们将按照以下步骤进行操作 –

  • arr:一个新列表
  • time:0
  • 对于客户中的每个配对(i,j),执行以下操作
    • if i > time,则
      • time = i + j
    • 否则,
      • time += j
  • 将(arr的末尾插入time-i)
  • 返回(arr中所有项目的平均值)

示例

让我们看一下以下实现,以更好的理解 –

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程