当前位置: 首页 > 知识库问答 >
问题:

队列场景帮助入门

微生恩
2023-03-14

嗨,我现在正在做一个排队等待时间模拟,在12个小时的过程中,每分钟增加一个随机数,同时每分钟从前面移除三个人。12小时后,我将平均他们进出队伍的速度。我需要执行50次才能得到更精确的模型模拟。我目前不知道如何正确地实现这一点。如果我能得到一些关于从哪里开始的建议,我将不胜感激。链表类

public class LinkedListQueue<E>{

private Node<E> head;
private Node<E> tail;
private int size;

public LinkedListQueue() {

}

public void enqueue(E element) {
    Node newNode = new Node(element, null);

    if (size == 0) {
        head = newNode;
    } else {
        tail.setNextNode(newNode);
    }

    tail = newNode;
    size++;
}

public E dequeue() {
    if (head != null) {
        E element = head.getElement();
        head = head.getNextNode();
        size--;
        if (size == 0) {
            tail = null;
        }
        return element;
    }
    return null;
}

public E first() {
    if (head != null) {
        return head.getElement();
    }
    return null;
}

public int getSize() {
    return size;
}

public void print() {
    if (head != null) {
        Node currentNode = head;
        do {
            System.out.println(currentNode.toString());
            currentNode = currentNode.getNextNode();
        } while (currentNode != null);
    }
    System.out.println();
}
}

节点类

public class Node<E>{
private E element;
private Node<E> next;

public Node(E element, Node next) {
    this.element = element;
    this.next = next;
}

public void setNextNode(Node next) {
    this.next = next;
}

public Node<E> getNextNode() {
    return next;
}

public E getElement() {
    return element;
}

public String toString() {
    return element.toString();
}
}

模拟班

import java.util.Random;

public class Simulation {

private int arrivalRate;
//you'll need other instance variables

public Simulation(int arrivalRate, int maxNumQueues) {
    this.arrivalRate = arrivalRate;
}

public void runSimulation() {
    //this is an example for using getRandomNumPeople
    //you are going to remove this whole loop.
    for (int i = 0; i < 10; i++) {
        int numPeople = getRandomNumPeople(arrivalRate);
        System.out.println("The number of people that arrived in minute " + i + " is: " + numPeople);
    }
}

//Don't change this method.
private static int getRandomNumPeople(double avg) {
    Random r = new Random();
    double L = Math.exp(-avg);
    int k = 0;
    double p = 1.0;
    do {
        p = p * r.nextDouble();
        k++;
    } while (p > L);
    return k - 1;
}

//Don't change the main method.
public static void main(String[] args) {
    Simulation s = new Simulation(18, 10);
    s.runSimulation();
}
}

共有1个答案

濮阳耀
2023-03-14

看来你还没有开始这项任务。

首先,从main()方法开始。创建一个新的仿真对象。按照构造函数调用到新模拟(18,10)。首先,您将看到构造函数是不完整的

public Simulation(int arrivalRate, int maxNumQueues) {
    this.arrivalRate = arrivalRate;
    // missing the handling of maxNumQueues
}

因此,对于初学者来说,您可能希望在Simulation类中定义integer类型的新变量(因为根据Simulation构造函数,这是maxNumQueues的类型)。从这里开始,您显然想要回到构造函数中,并设置新变量以引用构造函数调用。

例子:

public class Simulation {

private int arrivalRate;
private int maxNumQueues; // keep track of the maxNumQueues

public Simulation(int arrivalRate, int maxNumQueues) {
    this.arrivalRate = arrivalRate;
    this.maxNumQueues = maxNumQueues; // initialize our new local variable maxNumQueues
}}
 类似资料:
  • 问题内容: 我有一个使用javafx Scene来渲染某些东西的应用程序,并且我想将该渲染结果放入我在Javafx中创建的某些GUI中。我该怎么做? 基本上,有一些容器可以放入场景,然后将其放入GUI。 抱歉,如果是新手问题,我是JavaFX的新手 问题答案: 该场景只有一个顶级父节点作为根。您可以获取它并放入另一个场景。

  • 本文向大家介绍消息队列的作用和使用场景相关面试题,主要包含被问及消息队列的作用和使用场景时的应答技巧和注意事项,需要的朋友参考一下 通过异步处理提高响应时间,削峰填谷: 场景:数据比较集中且实时要求不是太高,如果同步处理,假如业务高峰需要4台服务支撑,那么在业务高峰过了之后,就会出现资源闲置,如果引入消息队列的话,将数据放到消息队列后直接返回成功,提升了响应时间,真正的业务在消息队列后面消费处理,

  • 亿景智图致力于以SaaS产品形态降低地理信息技术使用的技术门槛和资金成本,为企业用户提供高效专业的地理信息服务,提高企业经营效率,优化位置智能决策服务。

  • uses 本章节介绍几种主流的Apache Kafka的应用场景。关于几个场景实践的概述可以参考这篇博客. uses_messaging Kafka可以作为传统信息中间件的替代产品。消息中间件可能因为各种目的被引入到系统之中(解耦生产者和消费、堆积未处理的消息)。对比其他的信息中间件,Kafka的高吞吐量、内建分区、副本、容错等特性,使得它在大规模伸缩性消息处理应用中成为了一个很好的解决方案。 根

  • 有人能在Talend中的以下场景中帮助我吗:- 基于以下场景创建映射, 源结构及其数据, DB\U Store\u源:(平面文件) FF\U Store\u源:(平面文件) 目标结构, 在上述场景中,创建一个映射来合并来自DB\U Store\u Source和FF\u Store\u Source的数据,并将唯一记录传递到Store\u Target。应使用序列生成的值(第一条记录从1000开始

  • 接口说明 开发者可以通过该接口来获取所有的场景,更好的去管理相对应的场景 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/scene/1.0.0/get 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 pageNo int form 是 页码 pageSize int form 是 每一页展示的条数