Cyb*_*hot 1 random probability
如果我有事件A,B,C的相对概率发生.
即P(A)= 0.45,P(B)= 0.35,P(C)= 0.20,
如何使用0到1之间的随机数生成器来表示?
即R =兰特(0,1)
if (R < 0.45)
event A
else if(R < 0.35)
event B
else if(R < 0.20)
event C
Run Code Online (Sandbox Code Playgroud)
以上适用于两个事件A,B,但我认为由于存在重叠,上述情况对于三个或更多是错误的.
这显然是一个非常简单的问题,答案应该立即明显,但我看起来太愚蠢了.
您必须一起添加概率.我正在显示明确的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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |