安卓 - 以一定的概率选择五个随机数



我想选择5个随机数。

我的号码: 2-5-6-9-14

probability:
2  -> %30
5  -> %20
6  -> %35
9  -> %10
14 -> %5

如果三个数字相同,我想进行新活动。

不是:最多三个数字可以相同。

我该怎么做?

简单的方法:制作一个包含 100 个元素的数组,并在其中放入 30 个 2 个项目、20 个 5 个项目等等,然后在数组上运行随机,不是最好的解决方案,而是最简单的解决方案。

你应该尝试这样的事情(可以大大改进(。 这个想法是生成一个介于 0 和 100 之间的数字(代表 100%(。 然后根据概率返回所需的数字:

public int random() {
Random r = new Random();
int n = r.nextInt(100);
if (n < 30) // 30%
return 2;
if (n < (30 + 20)) // 20% (we exclude the 30% above)
return 5;
if (n < (30 + 20 + 35))  // 35% (we exclude the ones above)
return 6;
if (n < (30 + 20 + 35 + 10)) // 10% (30 + 20 + 35 are the previous probabilities)
return 9;
return 14; 
}

最简单的方法是将所需的nuber多次添加到数组中,然后选择一个随机索引。

另外,您可能还想看看这个 具有概率的随机数

最新更新