4

您是否曾经编写过因使用的(伪)随机数的质量而遇到麻烦的模拟或随机算法?

发生了什么事?

您是如何检测/意识到您的 prng 是问题所在?

切换 PRNG 是否足以解决问题,或者您是否必须切换到真正随机性的来源?

我试图弄清楚哪些类型的应用程序需要人们担心它们的随机性来源的质量,以及当这成为一个问题时人们如何意识到这一点。

4

2 回答 2

3
  1. 过时的随机数生成器RANDU在七十年代因产生“坏”随机数而臭名昭著。我的博士导师提到这影响了他的博士学位,他不得不重新运行模拟。在 Google 上搜索RANDU 线性同余生成器会找到其他示例。
  2. 当我在多台机器上运行模拟时,有时我很想生成“随机种子”,而不仅仅是使用适当的并行随机数生成器。例如,使用当前时间(以秒为单位)生成种子。这给我带来了足够多的问题,我不惜一切代价避免这种情况。

这主要是由于我的特殊兴趣,但除了并行计算之外,创建我自己的随机数生成器的想法永远不会出现在我的脑海中。在大多数语言中,调用经过良好测试的随机数函数是微不足道的。

于 2011-02-23T10:50:45.093 回答
1

DieHard运行 prng 是一个好习惯。现在存在非常好的和快速的 PRNG(参见 Marsaglia 的工作),参见 Numerical Recipes edition 3以获得很好的介绍。

于 2011-02-23T10:53:02.287 回答