我正在学习统计数据,让我说我有一些实验的结果:
1 | 0.34
2 | 0.10
3 | 0.05
4 | 0.13
5 | 0.13
6 | 0.25
我有兴趣使用此分布中的均匀随机数生成器生成样本。有什么建议吗?
答案 0 :(得分:1)
这是一个非常标准的问题,非常标准的解决方案。形成一个数组,其中每个条目不包含该索引的概率,而是包含该索引之前的所有概率的总和。对于您的示例问题,数组是p [1] = 0.34,p [2] = 0.44,p [3] = 0.49等。使用统一的RNG在0和1之间生成u。然后找到索引i,使得p [i-1]<你< P [i]中。对于像这样的非常小的数组,您可以使用线性搜索,但对于大型数组,您将需要使用二进制搜索。请注意,您可以重复使用数组生成多个偏差,因此不要每次都重新形成它。