蒙特卡洛模拟银行排队python
时间: 2024-02-26 19:51:09 浏览: 139
蒙特卡洛模拟是一种基于随机抽样的统计方法,可以用来模拟银行排队系统。在银行排队系统中,顾客到达银行的时间和服务时间都是随机的,因此可以使用蒙特卡洛模拟来模拟这种随机性。
下面是一个简单的蒙特卡洛模拟银行排队的Python示例代码:
```python
import random
def simulate_bank_queue(num_customers, avg_arrival_time, avg_service_time):
total_waiting_time = 0
max_waiting_time = 0
for i in range(num_customers):
arrival_time = random.expovariate(1.0 / avg_arrival_time)
service_time = random.expovariate(1.0 / avg_service_time)
if i == 0:
start_service_time = arrival_time
else:
start_service_time = max(arrival_time, end_service_time)
end_service_time = start_service_time + service_time
waiting_time = start_service_time - arrival_time
total_waiting_time += waiting_time
max_waiting_time = max(max_waiting_time, waiting_time)
average_waiting_time = total_waiting_time / num_customers
return average_waiting_time, max_waiting_time
# 示例调用
avg_arrival_time = 5.0 # 平均到达时间间隔为5分钟
avg_service_time = 10.0 # 平均服务时间为10分钟
num_customers = 1000 # 模拟的顾客数量
average_waiting_time, max_waiting_time = simulate_bank_queue(num_customers, avg_arrival_time, avg_service_time)
print("平均等待时间:", average_waiting_time)
print("最长等待时间:", max_waiting_time)
```
在上面的示例代码中,我们使用了指数分布来生成到达时间和服务时间。通过模拟多个顾客的到达和服务过程,我们可以得到平均等待时间和最长等待时间。
阅读全文