何をする必要があるかを決定するために乱数を多用し、PRNGの出力に基づいて多くの実行パスを持つプログラムがあります。デバッグしようとして頭を悩ませた後、すべての PRNG 呼び出しが、インスタンス化時にハードコードされた番号にシードされた同じ Random インスタンスを参照するようにすることにしました。そうすれば、プログラムを実行するたびに同じバグが表示されるはずです。残念ながら、実行するたびに異なるバグが発生します (動作はほとんど同じように見えますが)。
コードを何度も検索して、Math.random() の呼び出しを逃したものがないことを確認しました。
何か案は?
編集:生成される数値は同じであることを確認しましたが、動作はまだ非決定論的です。このプログラムはマルチスレッドではありません。まだ完全に困惑しています。
したがって、PRNG は期待どおりに動作していますが、まだ非決定論があります。プログラムに非決定性がうっかり持ち込まれてしまう可能性のある方法にはどのようなものがありますか?