|
Boost Users : |
Subject: Re: [Boost-users] Boost.Random Generator ignores seed
From: Juan Antonio Farré Basurte (jafb_at_[hidden])
Date: 2010-11-14 09:59:12
On Sun 14/11/10 00:32 , Alex Hagen-Zanker ahh34_at_[hidden] sent:
> 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 d100(gen,cien) whereas you really need
variate_generator 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
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net