我有一个文件,其中包含一些不同值的概率,例如:
1 0.1
2 0.05
3 0.05
4 0.2
5 0.4
6 0.2
Run Code Online (Sandbox Code Playgroud)
我想用这个发行版生成随机数.是否存在处理此问题的现有模块?自己编写代码相当简单(构建累积密度函数,生成随机值[0,1]并选择相应的值)但似乎这应该是一个常见问题,可能有人创建了一个函数/模块它.
我需要这个,因为我想生成一个生日列表(不遵循标准random模块中的任何分发).
我有这样的数据:
d = (
(701, 1, 0.2),
(701, 2, 0.3),
(701, 3, 0.5),
(702, 1, 0.2),
(702, 2, 0.3),
(703, 3, 0.5)
)
Run Code Online (Sandbox Code Playgroud)
其中(701,1,0.2)=(id1,id2,priority)
如果我知道id1,使用优先级,有没有一种选择id2的漂亮方法?
Func(701)应该返回:
1 - 在20%的情况下
2 - 30%
3 - 50%
百分比当然很粗糙
可能重复:
随机加权选择
生成具有给定(数字)分布的随机数
我有一个列表列表,其中包含一系列数字和相关概率.
prob_list = [[1, 0.5], [2, 0.25], [3, 0.05], [4, 0.01], [5, 0.09], [6, 0.1]]
Run Code Online (Sandbox Code Playgroud)
例如,prob_list[0]数字1的概率为0.5,与之相关.所以你会期望1出现50%的时间.
当我选择数字时,如何为数字增加权重?
注意:列表中的数字量可以在6到100之间变化
编辑
在列表中,我有6个数字及其相关概率.我想根据它们的概率选择两个数字.
没有数字可以选择两次.如果选择"2",则无法再次选择.