(伪)随机数生成的良好介绍

时间:2013-06-13 17:22:40

标签: c algorithm random probability

我对随机数生成的概念非常陌生,我需要为用C编写的工作创建自己的算法(内置随机数生成器对我不起作用)。

有人可以指点我对这个主题做一个很好的介绍,以便我能够掌握这个概念吗?到目前为止我发现的所有东西似乎都是用自身的方式解释自己,并没有太大的帮助。

我正在寻找外行人对这个话题的解释。

3 个答案:

答案 0 :(得分:1)

阅读在线Numerical Recipes in C

中的第7章

答案 1 :(得分:0)

对于一个开始学习的好地方,维基百科的文章相当不错,而且比Knuth更新。另请查看David Jones的this paper

如果C对您来说还不够好,还可以考虑使用像我自己的公共域ojrandlib这样的外部库,它可以让您选择像Marsaglia的MWC这样的算法, Mersenne Twister和其他人。

答案 2 :(得分:0)

Knuth的TAOCP第2卷(“Seminumerical算法”)的前半部分专门用于随机数生成。他谈到了几个伪随机数发生器,然后他花了很长时间讨论什么属性为大多数目的做出“好”的PRNG。如果你的工作是制作一个不吸吮的PRNG,那么它可能值得一读。

您可能还想看看George Marsaglia的作品。