And*_*ech 0 language-agnostic random probability
我做了一次搜索,但没有得到任何正确的点击.也许我使用了错误的条款?
我想问的是一个模拟偏见角色的算法,而不是标准的假定随机滚动.
如果你不能给我确切的答案(也许解释很冗长?)这不会是一个问题,但我会很感激并指出我能读到的关于它的材料.
我的想法是,例如,将偏差转移到5,6区域,这样数字滚动将有更高的机会获得5或6; 这就是我试图解决的问题.
[更新]
在进一步的思考,并通过检查一些问题的答案,我已经意识到我想要实现的是真正的轮盘赌选择,因为具有较大的行业意味着增加球会在那里着陆的几率是在遗传算法中使用的运营商.我对这种想法是否正确?
通常,如果您的概率是{p1,p2,...,p6},请构造以下帮助程序列表:
{a1, a2, ... a5} = { p1, p1+p2, p1+p2+p3, p1+p2+p3+p4, p1+p2+p3+p4+p5}
Run Code Online (Sandbox Code Playgroud)
现在在[0,1]中得到一个随机数X
如果
X <= a1 choose 1 as outcome
a1 < X <= a2 choose 2 as outcome
a2 < X <= a3 choose 3 as outcome
a3 < X <= a4 choose 4 as outcome
a4 < X <= a5 choose 5 as outcome
a5 < X choose 6 as outcome
Run Code Online (Sandbox Code Playgroud)
或者,更有效的伪代码
if X > a5 then N=6
elseif X > a4 then N=5
elseif X > a3 then N=4
elseif X > a2 then N=3
elseif X > a1 then N=2
else N=1
Run Code Online (Sandbox Code Playgroud)
编辑
这相当于您在问题更新中提到的轮盘赌选择,如下图所示:
