1

これに対する答えは簡単だと思いましたが、現時点では完全に私をほのめかしているようです.

乱数を生成するためにMersenne Twister (実装はhttp://www.bedaux.net/mtrand/ ) を使用しています。

同じプログラム内で、同じ一連の「乱数」を連続して 2 回生成できるようにする必要があります。同じ void シード (const unsigned long*, int size); を使用しています。これによりジェネレーターがリセットされ、同じ値を再度生成できるようになることを期待して、同じ値のセットで関数を実行します。具体的には:

unsigned long init[4] = {0x123, 0x234, 0x345, 0x456}, length = 4;
irand.seed(init, length);

これをテストして機能させるためだけに。

誰かが以前にこの問題を抱えていたのだろうかと思っていました。

または、私が間違っていることを知っています。

4

1 に答える 1

0
unsigned long init[4] = {0x123, 0x234, 0x345, 0x456};
int length = 4; 
MTRand_int32 irand(init, length);

irand.seed(init, length); // this resets

mtrand テスト プログラムを変更して 5 回の出力後にリセットするようにテストしたところ、結果は明らかでした。

于 2011-05-01T11:32:19.207 に答える