我需要根据概率选择一种可能的输出。可以说我有
p[1]=20%
p[2]=40%
p[3]=15%
p[4]=25%
p []的大小是一个变量(在本例中为4),我知道它们加起来等于100%。如何根据概率从p中选择一个元素?
最佳答案
最简单的使用方法是使用Random.nextFloat()
方法,然后检查0-1之间的随机数落在哪个范围内。
根据您的问题评论,您可能想要更多这样的东西:
Random r = new Random();
p[0]=0.2;
p[1]=0.4;
p[2]=0.15;
p[3]=0.25;
float myVal = r.nextFloat();
float probSum = 0.0;
for (int i = 0; i < p.length; p++) {
probSum += p[i];
if (myVal <= probSum) {
return i;
}
}
return p.length-1;
显然,您可以对此进行修饰,但这是一个应该起作用的一般想法。
关于java - 装好的骰子(加权随机),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22646328/