Boost logo

Boost :

Subject: [boost] Problem with boost::random seed
From: Anton Skvorts (anton.skvorts_at_[hidden])
Date: 2011-01-24 14:29:41


Testing boost::random with the following code

boost::mt19937 gener(1);
boost::normal_distribution<> normal(0,1);
boost::variate_generator<boost::mt19937 &,boost::normal_distribution<> >
rng(gener, normal);
cout << rng() << endl;
cout << rng() << endl;
cout << rng() << endl;
gener.seed(2);
cout << rng() << endl;
cout << rng() << endl;
cout << rng() << endl;

I'm getting unexpected values after gener.seed(2)
    -2.971829031 1.706951063 -0.430498971

    -2.282022417 x
 -0.5887503675
 0.2504171986

The value -2.282022417 is the forth number in the sequence originated by
gener(1) and not the first number in the sequence originated by gener.seed(2)
as one would expect (this number is actually -0.5887503675). If I reseed
next with gener.seed(3)it works fine, but if after that I reseed again with
gener.seed(1) I'll get the same problem, and so on and off...

How can I reseed the random number generator to overcome this problem?

Thanks in advance


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk