我正在编写一个程序,我需要根据加权机会得到一个随机值,并且遇到了真正的困难。我需要做的一个例子:
a = 50%,b = 30%,c = 10%,d = 10%
在这个例子中,我需要能够得到一个随机值a,b,c或d,其值回归为50%的时间,b 30%的时间等等...
非常感谢
答案 0 :(得分:5)
根据应出现的几率,为每个值分配0到1之间的数字范围。例如,A应该是0到.5,因为它需要50%的几率。然后,得到一个介于0和1之间的随机数。随机数落入的值是你获得的值。
A = [0,.5)
B = [。5,.8)
C = [。8,.9)
D = [。9,1)
随机数为[0,1)
[=包含,)=排他性。