我需要根据概率选择一个可能的输出。让我说我有
p[1]=20%
p[2]=40%
p[3]=15%
p[4]=25%
p []的大小是一个变量(在这种情况下是4),我知道它们总和为100%。如何根据它的概率从p中选择一个元素?
答案 0 :(得分:1)
使用此方法的最简单方法是使用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;
显然你可以做到这一点,但这是一个应该有用的一般性想法。