私はいくつかの乱数生成を行っており、怪しい動作をしています。これが私のコードです:
// initialized earlier... in the constructor of a class
boost::mt19937 *rng = new boost::mt19937();
rng->seed(time(NULL));
// actual use here.
for (int i = 0; i < 10; ++i)
{
test();
}
void test()
{
boost::normal_distribution<> distribution(10, 10);
boost::variate_generator< boost::mt19937, boost::normal_distribution<> > resampler(*rng, distribution);
const double sample = (resampler)(); // always the same value.
}
ブーストでランダムサンプリングを誤用していますか? それを常に同じ値にするために、私は何を間違えましたか。コンストラクターで乱数ジェネレーターを初期化するので、常に別の値を吐き出す必要があります (再初期化されません)。