我对随机数生成的概念非常陌生,我需要为用C编写的工作创建自己的算法(内置随机数生成器对我不起作用)。
有人可以指点我对这个主题做一个很好的介绍,以便我能够掌握这个概念吗?到目前为止我发现的所有东西似乎都是用自身的方式解释自己,并没有太大的帮助。
我正在寻找外行人对这个话题的解释。
答案 0 :(得分:1)
答案 1 :(得分:0)
对于一个开始学习的好地方,维基百科的文章相当不错,而且比Knuth更新。另请查看David Jones的this paper。
如果C对您来说还不够好,还可以考虑使用像我自己的公共域ojrandlib这样的外部库,它可以让您选择像Marsaglia的MWC这样的算法, Mersenne Twister和其他人。
答案 2 :(得分:0)
Knuth的TAOCP第2卷(“Seminumerical算法”)的前半部分专门用于随机数生成。他谈到了几个伪随机数发生器,然后他花了很长时间讨论什么属性为大多数目的做出“好”的PRNG。如果你的工作是制作一个不吸吮的PRNG,那么它可能值得一读。
您可能还想看看George Marsaglia的作品。