|
Boost Users : |
From: Jim Ingram (ingramj_at_[hidden])
Date: 2006-09-08 14:39:40
I'm just starting out with boost, and I'm playing around with the random
library. I'm writing a class that is supposed to simulate a six-sided die.
It compiles and everything works, except seeding the mt19937. Every time I
try testing this class, I get the same numbers, no matter what value I call
my seed method with. If I use the constructor that takes a seed value, I
get different numbers, but reseeding the object still doesn't seem to have
any effect. Any ideas?
#include <boost/random.hpp>
class D6 {
typedef boost::mt19937 engine_t;
typedef boost::uniform_int<> dist_t;
typedef boost::variate_generator<engine_t, dist_t> gen_t;
public:
D6() : engine(), six(1, 6), die(engine, six) { }
D6(boost::uint32_t s) : engine(s), six(1, 6), die(engine, six) { }
int roll() { return die(); }
// This method seems to do nothing.
void seed(boost::uint32_t s) {
engine.seed(s);
}
private:
engine_t engine;
dist_t six;
gen_t die;
};
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