使用随机数gen的相对概率

时间:2012-06-09 04:34:40

标签: random probability

如果我发生事件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,但我认为由于存在重叠,上述内容对于三个或更多是错误的。

这显然是一个非常简单的问题,答案应该立即明确,但我看起来太愚蠢了。

2 个答案:

答案 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