实现Python 3个银行窗口服务时间

引言

作为一名经验丰富的开发者,我将向你介绍如何使用Python来模拟3个银行窗口的服务时间。这个练习将帮助你理解如何使用Python编写简单的模拟程序,并为你提供解决实际问题的思路和方法。

整件事情的流程

首先,让我们来看看整个模拟程序的流程,下面是一个简单的表格展示:

步骤 描述
1 生成随机的顾客到达时间
2 生成随机的服务时间
3 计算每个顾客的等待时间和总的等待时间
4 计算平均等待时间和最长等待时间
5 打印结果

接下来,我将详细介绍每一步需要做什么,并为每一步提供必要的代码和注释。

步骤 1: 生成随机的顾客到达时间

首先,我们需要生成一组随机的顾客到达时间。我们可以使用Python中的random模块的randint()函数来生成随机整数。下面是相应的代码:

import random

arrival_times = []  # 存储顾客到达时间的列表
num_customers = 10  # 顾客数量

for _ in range(num_customers):
    arrival_time = random.randint(1, 10)  # 生成1到10之间的随机整数
    arrival_times.append(arrival_time)

print(arrival_times)

上述代码中,我们使用range()函数来生成一个包含10个元素的迭代器。在每次迭代中,我们使用random.randint()函数生成1到10之间的随机整数,并将其添加到arrival_times列表中。

步骤 2: 生成随机的服务时间

接下来,我们需要生成一组随机的服务时间。我们可以再次使用random模块的randint()函数来生成随机整数。下面是相应的代码:

service_times = []  # 存储服务时间的列表

for _ in range(num_customers):
    service_time = random.randint(5, 20)  # 生成5到20之间的随机整数
    service_times.append(service_time)

print(service_times)

上述代码中,我们使用相同的方法生成随机整数,并将其添加到service_times列表中。

步骤 3: 计算每个顾客的等待时间和总的等待时间

现在,我们需要计算每个顾客的等待时间和总的等待时间。顾客的等待时间是前面所有顾客的到达时间和服务时间的总和。下面是相应的代码:

wait_times = []  # 存储每个顾客的等待时间的列表
total_wait_time = 0  # 总的等待时间

for i in range(num_customers):
    if i == 0:
        wait_time = 0  # 第一个顾客的等待时间为0
    else:
        wait_time = sum(service_times[:i]) - arrival_times[i]  # 计算等待时间
    wait_times.append(wait_time)
    total_wait_time += wait_time

print(wait_times)
print(total_wait_time)

上述代码中,我们使用sum()函数计算前面所有顾客的服务时间总和,并减去当前顾客的到达时间,从而得到等待时间。然后,我们将等待时间添加到wait_times列表中,并将其累加到total_wait_time变量中。

步骤 4: 计算平均等待时间和最长等待时间

然后,我们需要计算平均等待时间和最长等待时间。平均等待时间是总的等待时间除以顾客数量,最长等待时间是等待时间列表中的最大值。下面是相应的代码:

avg_wait_time = total_wait_time / num_customers  # 平均等待时间
max_wait_time = max(wait_times)  # 最长等待时间

print(avg