Re: [Boost-users] Boost.Random Generator ignores seed

I'm using mt19937 random number generator, belonging to Boost.Random library, and it looks to ignore my call to seed. I show relevant code.
static mt19937 gen; static MiniUni cien(1, 100); static variate_generator d100(gen, cien);
int main() { { struct timeval time; gettimeofday( gen.seed(time.tv_usec); }
And it generates the same sequence over and over. I've double-checked that time.tv_usec really changes.
Could it be that variate_generator d100(gen, cien) defaults to variate_generator<mt19937, MiniUni> d100(gen,cien) whereas you really need variate_generator<mt19937&, MiniUni> d100(gen,cien)? The constructor of the variate_generator now makes a copy of gen and changing the seed of gen afterwards does not affect the variate_generator. Solution: explicitly use variate_generator<mt19937&, MiniUni>(gen,cien). Kind regards, Alex
participants (1)
-
Alex Hagen-Zanker