我用這來嘗試創建一個加權隨機:使用switch語句來測試加權隨機數
int choice_weight[] = { 25, 25, 25, 25 };
int num_choices = choice_weight.length;
Random random = new Random();
int i;
int sum_of_weight = 0;
for (i = 0; i < num_choices; i++) {
sum_of_weight += choice_weight[i];
}
int rnd = random.nextInt(sum_of_weight);
System.out.println(rnd);
for (i = 0; i < num_choices; i++) {
if (rnd < choice_weight[i])
rnd -= choice_weight[i];
}
我使用的是馬桶蓋語句來測試,看看情況是:
case 1:
case 2:
case 3:
case 4:
問題是random.nextInt(sum_of_weight)
正在生成100到0之間的數字,這是基於我的25,25,25,25的4個權重。我需要一個數字來匹配其中一個可能的情況1-4?還是應該改變我的測試方法?
這整個過程是有點讓我困惑,有些幫助將不勝感激。
所以基本上選擇一個特定數字的概率是25%。另外,我會在整個程序的生命週期中改變百分比。
開關在哪裏起作用? – 2012-07-06 02:19:56
它選擇了一個精靈放置到場景中 – 2012-07-06 02:38:23
問題的標題「使用switch語句測試加權隨機數」很具誤導性 - 問題與switch語句無關(順便提一下,許多人認爲是邪惡的,但那是另一回事)。我也沒有看到「問題」究竟是什麼...... – 2012-07-06 02:58:26