我正在使用它来尝试创建加权随机数:
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];
}
我正在使用 swtich 语句来测试并查看案例是否为:
case 1:
case 2:
case 3:
case 4:
问题是random.nextInt(sum_of_weight)
生成 100 到 0 之间的数字,这是基于我的 25、25、25、25 的 4 个权重。我需要一个数字来匹配可能的情况 1-4 之一?还是我应该改变我的测试方法?
整个过程让我有点困惑,非常感谢一些帮助。
因此,基本上选择特定数字的几率为 25%。此外,我将在整个程序的生命周期中更改百分比。