主题:电梯问题
问题
某栋写字楼6层,有1部电梯,编写一个电梯仿真程序
A. 考虑如下条件
1. 每层楼都有上行和下行两个按键
2.电梯一开始停在1层
3.电梯可以容纳8个人
4.乘坐电梯的客人的请求频率,时间间隔和到达楼层是随机的
5.电梯的上下一层需要1秒
6.电梯空间有限,同时只能容纳一定数量的客人,如果已经达到人数额度,电梯将不理会任何请求
7.不考虑客人请求当前楼层和不请求楼层的情况
8.电梯的响应延迟为0(比如,电梯往3楼上行,3楼的客人在电梯到达3楼之前按上行键,程序有权调度电梯在3楼开门)
9.电梯的开关门时间和客人上下电梯时间为0,匀速运行
10.电梯调度算法不能预读尚未发生的请求(比如在10秒的时候电梯无法预知11秒时某层客人的请求)
11.客人请求发生在整数秒
B. 目标
1.在运送所有客人到达目标楼层的前提下电梯的总行程尽可能小
2. 设计一个接口,实现调度算法的可替换性(比如,通过重新实现该接口可以使系统使用其它算法)
C. 输入和输出
输入:
input.txt
客人的请求序列,格式为到达时间,所在楼层,请求楼层,假设该输入是按照时间递增的
比如:
input.txt
1 2 3
2 3 1
在1秒的时候有客人请求从2层到3层,2秒的时候有客人请求从3层到1层
输出: 设计一种简单实用的输出可以清晰地反映电梯的运转情况
某栋写字楼6层,有1部电梯,编写一个电梯仿真程序
A. 考虑如下条件
1. 每层楼都有上行和下行两个按键
2.电梯一开始停在1层
3.电梯可以容纳8个人
4.乘坐电梯的客人的请求频率,时间间隔和到达楼层是随机的
5.电梯的上下一层需要1秒
6.电梯空间有限,同时只能容纳一定数量的客人,如果已经达到人数额度,电梯将不理会任何请求
7.不考虑客人请求当前楼层和不请求楼层的情况
8.电梯的响应延迟为0(比如,电梯往3楼上行,3楼的客人在电梯到达3楼之前按上行键,程序有权调度电梯在3楼开门)
9.电梯的开关门时间和客人上下电梯时间为0,匀速运行
10.电梯调度算法不能预读尚未发生的请求(比如在10秒的时候电梯无法预知11秒时某层客人的请求)
11.客人请求发生在整数秒
B. 目标
1.在运送所有客人到达目标楼层的前提下电梯的总行程尽可能小
2. 设计一个接口,实现调度算法的可替换性(比如,通过重新实现该接口可以使系统使用其它算法)
C. 输入和输出
输入:
input.txt
客人的请求序列,格式为到达时间,所在楼层,请求楼层,假设该输入是按照时间递增的
比如:
input.txt
1 2 3
2 3 1
在1秒的时候有客人请求从2层到3层,2秒的时候有客人请求从3层到1层
输出: 设计一种简单实用的输出可以清晰地反映电梯的运转情况