【发布时间】:2013-11-21 04:53:29
【问题描述】:
您好,我正在为基因组学课程编写一些代码,但在某些方面遇到了困难。
我有一组互斥事件 概率
我想以给定的概率模拟随机抽样一个事件 n 次。
输入:概率 = {0.3, 0.2, 0.5} 事件{e1,e2,e3} n=100
输出:e3 应该有 ~50 个结果,e2 应该有 ~20 个结果,e1 应该有 ~30 个结果。 请注意,这些可能不完全是 50、20、30,因为 经验值与理论值不同...
【问题讨论】:
-
如果
probabilities和events输入确实是两个集合,如您所展示的,则无法将概率与事件匹配。 -
你只是想生成
n随机数吗? -
查看 Eli Bendersky 在 weighted random sampling 上的页面,了解实现这一目标的多种方法。
-
另见Python issue 18844,其中几个加权选择实现相互测试(预期将其中一个添加到
random模块)。