Android - 以一定概率选择五个随机数

时间:2017-07-25 15:37:35

标签: android

我想以一定的概率选择5个随机数。

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

$scope.activateSmartcase=function(deviceId){

}

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

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

我该怎么做?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

另外你可能想看看这个 Random number with Probabilities

答案 2 :(得分:0)

你应该尝试类似的东西(可以大大改进)。 我们的想法是生成一个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; 
}