4

使用した (疑似) 乱数の品質が原因で問題が発生したシミュレーションやランダム化アルゴリズムを作成したことがありますか?

何が起こっていたのですか?

prng が問題であることをどのように検出/認識しましたか?

PRNG を切り替えるだけで問題は解決しましたか?それとも真のランダム性のソースに切り替える必要がありましたか?

私は、ランダム性のソースの品質について心配する必要があるアプリケーションの種類と、これが問題になったときにどのように気付くかを理解しようとしています。

4

2 に答える 2

3
  1. 日付の付いた乱数ジェネレーターRANDUは、「悪い」乱数を生成することで70年代に悪名高いものでした。私の博士課程のスーパーバイザーは、それが彼の博士号に影響を及ぼし、シミュレーションを再実行する必要があると述べました。GoogleでRANDU線形一致ジェネレーターを検索すると、他の例が表示されます。
  2. 複数のマシンでシミュレーションを実行すると、適切な並列乱数ジェネレーターを使用するのではなく、「ランダムシード」​​を生成したくなることがあります。たとえば、秒単位の現在の時刻を使用してシードを生成します。これは私に十分な問題を引き起こしたので、私はこれを絶対に避けます。

これは主に私の特定の関心によるものですが、並列コンピューティングを除いて、独自の乱数ジェネレーターを作成するという考えは私の頭に浮かぶことはありません。十分にテストされた乱数関数を呼び出すことは、ほとんどの言語で簡単です。

于 2011-02-23T10:50:45.093 に答える
1

DieHardに対してprngを実行することをお勧めします。現在、非常に優れた高速のPRNGが存在します(Marsagliaの作業を参照) 。優れた紹介については、NumericalRecipesエディション3を参照してください。

于 2011-02-23T10:53:02.287 に答える