1

如果我有事件 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 但我认为以上对于三个或更多事件是错误的,因为存在重叠。

这显然是一个非常简单的问题,答案应该立即显而易见,但我太愚蠢了,看不到它。

4

2 回答 2

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
于 2012-06-09T04:39:19.543 回答
3

您应该具备以下条件:

if(R < 0.45)
    Event A
else if(R < 0.80)
    Event B
else
    Event C
于 2012-06-09T04:40:36.707 回答