亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為不同的對象分配隨機數

為不同的對象分配隨機數

哈士奇WWW 2023-09-27 14:22:42
我有一個使用泊松分布隨機生成數字的函數,并且我還有一個巴士類和一個巴士站類?,F在我已經生成了 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 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號