【发布时间】:2010-05-07 20:27:14
【问题描述】:
我需要从二项式分布中快速生成大量随机数,以用于显着不同的试验规模(但大多数会很小)。我希望不必手动编写算法(例如,参见this related discussion from November),因为我是新手程序员,不喜欢重新发明轮子。似乎 Boost 不提供二项分布变量的生成器,但 TR1 和 GSL 提供。是否有充分的理由选择一个而不是另一个,或者我根据自己的情况编写一些定制的东西更好?我不知道这是否有意义,但我将在整个程序中从均匀分布和二项分布生成数字之间交替,我希望它们共享相同的种子并最大限度地减少开销。对于我应该考虑的问题,我很乐意提供一些建议或示例。
【问题讨论】:
-
请参阅Biassed Random Number Generator 了解关于非均匀 PRNG 的一些讨论。不过,它并没有直接回答您的问题,而且您的“十一月”参考资料看起来也很相关。
-
“Biassed...”链接再次引用了 Boost 库,它们似乎没有用于二项分布的 PRNG。十一月的参考给出了一些近似值。据我了解,从试验次数可能有很大差异的二项分布中提出高效和高质量的 PRNG 是一个数学挑战。我希望已经存在一个可以处理所有这些场景的库。看起来我可能必须自己测试 TR1 和 GSL——希望这里的其他人可能已经有经验。