2

(rand() を使用して) サンプリングに大きく依存する C++ コードがありますが、再現可能にしたいと考えています。そのため、最初に srand() をランダムなシードで初期化し、そのシードを出力します。他の人が同じコードをもう一度実行できるようにしたいのですが、同じシードで srand() を初期化して、私とまったく同じ答えを得てください。

しかし、それはどのような状況で保証されるのでしょうか? バイナリが同じシステム上の同じコンパイラでコンパイルされている場合にのみ機能すると思いますか? 答えが最初に得たものと異なる可能性がある他の要因は何ですか?

4

4 に答える 4

0

rand() の実装を確認し、そこから乱数ジェネレーターの 1 つを使用します。これにより、実行するプラットフォームに関係なく再現性が保証されます。

于 2010-08-08T18:57:08.857 に答える