如果我发生事件A,B,C的相对概率。
即P(A)= 0.45,P(B)= 0.35,P(C)= 0.20,
如何使用0到1之间的随机数生成器来表示?
即。 R = rand(0,1)
if (R < 0.45)
event A
else if(R < 0.35)
event B
else if(R < 0.20)
event C
以上适用于两个事件A,B,但我认为由于存在重叠,上述内容对于三个或更多是错误的。
这显然是一个非常简单的问题,答案应该立即明确,但我看起来太愚蠢了。
答案 0 :(得分:5)
您必须将概率加在一起。我正在显示明确的if/then
语句,但是在带有循环的数组中使用概率很容易做到这一点,因此它可以非常动态。请注意,排序无关紧要。
if (R < 0.45)
event A
else if(R < 0.45 + 0.35) // R < 0.80
event B
else // (R must necessarily be < 0.45 + 0.35 + 0.20, or 1)
event C
答案 1 :(得分:3)
您应该具备以下条件:
if(R < 0.45)
Event A
else if(R < 0.80)
Event B
else
Event C