6.银行排队问题
代码:
Code on gitee
【笔记】银行排队问题模拟
使用 C++ 语言,实现了银行排队问题的模拟。主要思路如下:
1. 输入
首先, 从标准输入中读取两个整数,分别代表窗口数 m 和客户数 total。
2. 模拟排队
对于每个客户, 从标准输入中读取两个整数,分别代表该客户到达的时间 tIn 和需要的服务时间 tNeed。然后,模拟客户在银行排队等待服务的过程。
具体来说, 维护一个数组 tNow,其中 tNow[i] 表示第 i 个窗口当前排队的时间。同时, 维护一个队列 tWait,其中存储需要等待的客户需要等待的时间。
对于每个客户, 寻找当前最空闲的窗口,然后判断该客户是否需要等待。
- 如果不需要等待,则该客户可以直接接受服务,服务结束时间为 tIn + tNeed;
- 如果需要等待,则将该客户加入队列 tWait 中,同时更新该窗口的排队时间为上一个客户服务结束的时间加上当前客户的服务时间。
循环执行上述过程,直到处理完所有的客户为止。
3. 计算平均等待时间
处理完所有客户后, 计算客户的平均等待时间。
具体来说, 遍历队列 tWa