我想以一定的概率选择5个随机数。
我的电话号码:2-5-6-9-14
$scope.activateSmartcase=function(deviceId){
}
如果三个数字相同,我想去新活动。
不是:最多三个数字可以相同。
我该怎么做?
答案 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;
}