实现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