这里有一点数学。
普通骰子将以相等的概率给每个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))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)