首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找对象在队列上的平均队列长度和平均时间。

查找对象在队列上的平均队列长度和平均时间。
EN

Stack Overflow用户
提问于 2014-11-13 16:14:14
回答 1查看 1.4K关注 0票数 0

我正在建立一个计划,以刺激机场的运作,在那里飞机降落和起飞。降落飞机优先于起飞飞机,但它们是两个单独的队列。

飞机被随机添加并从队列中移除。计算landingQueue和takeOffQueue的平均队列长度以及确定飞机在队列上花费多长时间的最佳方法是什么?

随机发生器=新随机(System.currentTimeMillis());

代码语言:javascript
复制
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--;

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 16:21:32

如您所述,队列在for循环中随机地排队和脱队。

从这个意义上说,你能不能只在for循环上面有变量,这样

代码语言:javascript
复制
int averageLandingQueue = 0;
int averageTakeOffQueue = 0;

然后在for循环中

代码语言:javascript
复制
averageLandingQueue += landingQueue.size();
averageTakeOffQueue += takeOffQueue.size();

最后在for循环之后,

代码语言:javascript
复制
averageLandingQueue/=ITERATIONS;
averageTakeOffQueue/=ITERATIONS;

也许平均时间可以用类似的方式来完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26913384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档