我正在建立一个计划,以刺激机场的运作,在那里飞机降落和起飞。降落飞机优先于起飞飞机,但它们是两个单独的队列。
飞机被随机添加并从队列中移除。计算landingQueue和takeOffQueue的平均队列长度以及确定飞机在队列上花费多长时间的最佳方法是什么?
随机发生器=新随机(System.currentTimeMillis());
ArrayQueue<Double> landingQueue = new ArrayQueue<>();
ArrayQueue<Double> takeOffQueue = new ArrayQueue<>();
ArrayQueue<Integer> averageLengthQueue = new ArrayQueue<>();
boolean runwayIsFree = false;
double mins = 0;
for(int i = 0; i < 1000; i += 60) {
double rand1 = generator.nextDouble();
double rand2 = generator.nextDouble();
if(rand1 < .16)
landingQueue.enqueue(rand1);
if(rand2 < .14)
takeOffQueue.enqueue(rand2);
if(mins == 0)
runwayIsFree = true;
if(runwayIsFree) {
if(!landingQueue.isEmpty()) {
landingQueue.dequeue();
mins = 3;
}
else if(!takeOffQueue.isEmpty()) {
takeOffQueue.dequeue();
mins = 2;
}
}
else
mins--;
}发布于 2014-11-13 16:21:32
如您所述,队列在for循环中随机地排队和脱队。
从这个意义上说,你能不能只在for循环上面有变量,这样
int averageLandingQueue = 0;
int averageTakeOffQueue = 0;然后在for循环中
averageLandingQueue += landingQueue.size();
averageTakeOffQueue += takeOffQueue.size();最后在for循环之后,
averageLandingQueue/=ITERATIONS;
averageTakeOffQueue/=ITERATIONS;也许平均时间可以用类似的方式来完成。
https://stackoverflow.com/questions/26913384
复制相似问题