如何在python中模拟偏向死角?

如何在python中模拟偏向死角?,第1张

如何在python中模拟偏向死角?

这里有一点数学。

普通骰子将以相等的概率给每个1-6,即

1/6
。这称为均匀分布(相对于连续版本,它是离散版本)。意思是,如果
X
是一个描述单个角色结果的随机变量,则
X~U[1,6]
-意思
X
是平均分配给模辊的所有可能结果,从1到6。

这相当于在选择数目

[0,1)
而将其分成6个部分:
[0,1/6)
[1/6,2/6)
[2/6,3/6)
[3/6,4/6)
[4/6,5/6)
[5/6,1)

您请求的是其他分配,这是有偏见的。实现此目的的最简单方法是

[0,1)
根据所需的偏差将部分分为6个部分。所以你的情况,你会想要将它划分为如下:
[0,0.2)
[0.2,0.4)
[0.4,0.55)
0.55,0.7)
[0.7,0.84)
[0.84,1)

如果查看Wikipedia条目,您会发现在这种情况下,累积概率函数将不由6个等长的部分组成,而是由6个长度不同的部分组成,这些部分的长度根据您给他们的
偏见 而不同。质量分布也一样。

回到问题,根据您使用的语言,将其翻译回您的模具。在Python中,这是一个非常粗略的示例,尽管可以正常工作:

import randomsampleMassDist = (0.2, 0.1, 0.15, 0.15, 0.25, 0.15)# assume sum of bias is 1def roll(massDist):    randRoll = random.random() # in [0,1]    sum = 0    result = 1    for mass in massDist:        sum += mass        if randRoll < sum: return result        result+=1print(roll(sampleMassDist))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5640153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存