0

C ++で乱数ジェネレーターにシードできる最大値を見つけたいと思います。私のコードは次のとおりです。

mt19937 myRandomGenerator(seed);

変数のシードはどのくらい大きくできますか? 値が大きくなりすぎると、乱数ジェネレーターが同じ一連の「乱数」を吐き出すことに気付きました。これが起こらない場合にシードがどれだけ大きくなるかを知りたいです。

4

2 に答える 2

3

seedこれはstd::uint_fast32_t通常、32 ビットの int です。範囲内のすべての値は、[0..2^32)異なる結果を生成する必要があります。2 つの異なるシード値から同じシーケンスが表示されている場合は、観測エラーが発生しており、入力しているシードが実際には同じであるか、標準ライブラリの実装にバグがあります。

誤動作を示す自己完結型の短いテスト プログラムを準備し、ここに投稿してください。

于 2013-08-23T15:10:22.387 に答える