为了账号安全,请及时绑定邮箱和手机立即绑定

为不同的对象分配随机数

为不同的对象分配随机数

哈士奇WWW 2023-09-27 14:22:42
我有一个使用泊松分布随机生成数字的函数,并且我还有一个巴士类和一个巴士站类。现在我已经生成了 5 个公交车对象和 15 个公交车站对象。我的目标是为这五个公交车对象分配随机数以指示它们的公交车站位置。private static int getPoissonRandom(double mean){Random r = new Random();double L = Math.exp(-mean);int k = 0;double p = 1.0;do {    p = p * r.nextDouble();    k++;} while (p > L);return k - 1;}巴士站等级public class busStop {int bus_stop_id;public busStop(){      this.bus_stop_id=bus_stop_id;} public void create_busStop(int total,int position){   for(int i=1; i<=total; i++){        bus_stop_id=i;        //System.out.println("Bus_Stop with ID:"+i+" Spawned");        setBusPosition(i,position);    }}public void setBusPosition(int bus_id, int stop_id){    System.out.println("Bus : "+bus_id+ " at Stop :"+stop_id);    } }巴士类public class Bus {int capacity;int bus_id=0;public Bus(){  this.capacity=50;      this.bus_id=bus_id;} public void spawn_bus(int bus_total){    for(int i=1; i<=bus_total; i++){        bus_id=i;        System.out.println("Bus with ID:"+i+" created");    }}   }主功能    public static void main(String[] args) {  int bus_number=5;    int total_bus_stops=15;   Bus bus = new Bus(); busStop stops = new busStop(); getPoissonRandom(5); bus.spawn_bus(bus_number); stops.create_busStop(total_bus_stops,getPoissonRandom(5));}当我运行代码时,我不断收到分配给所有 5 个总线对象的一个数字,但我希望使用泊松分布生成器将不同的随机数分配给 5 个总线对象
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

您面临这个问题,因为您只调用了一次随机生成方法。要实现所需的输出,您需要在 create_busStopMethod 中调用 getPoissonRandom(double Mean) ,如下所示:


    public void create_busStop(int total,int position){

   for(int i=1; i<=total; i++){

        bus_stop_id=i;

        //System.out.println("Bus_Stop with ID:"+i+" Spawned");

        setBusPosition(i,MainClass.getPoissonRandom(position));

    }

}

然后将该方法调用为


stops.create_busStop(total_bus_stops,5);

或者您可以修改 creat_busStop 以接受 id 和位置而不是total_bus_stops,如下所示:


public void create_busStop(int id,int position){

    bus_stop_id=id;

    setBusPosition(id,position);

}

}


然后在 for 循环中调用该方法


for(int i=0;i<total_bus_stops;i++){

stops.create_busStop(i,getPoissonRandom(5));

}


查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信