
#include "uniform_int.hpp" #include "boost/random/variate_generator.hpp" #include "boost/random/mersenne_twister.hpp" #include <time.h> #include <iostream> using namespace std; using namespace boost; time_t T = time(0); mt19937 gen(T); int roll_die() { uniform_int<> dist(1, 6); variate_generator<mt19937&, uniform_int<> > die(gen, dist); return die(); } int main() { for (int i = 0; i < 5; i++) cout << roll_die() << endl; return 0; } Thanks for your help, it works this way. On 24 January 2011 15:33, Hernán Leoni <leoni.hernan@gmail.com> wrote:
I think you have to use the time as argument for the generator mt19937 gen(time(0));
2011/1/24 Zoltán Lengyel <katzlengyel@gmail.com>
Hello, I am trying to make a simple program that can generate random integers in range, using boost::uniform_int.
http://www.boost.org/doc/libs/1_45_0/doc/html/boost_random/tutorial.html#boo... This tutorial tells: "We use mt19937<http://www.boost.org/doc/libs/1_45_0/doc/html/boost/mt19937.html>with the default seed as a source of randomness. The numbers produced will be the same every time the program is run. One common method to change this is to seed with the current time (std::time(0) defined in ctime)."
I have trouble getting this common method compile and work. Here's a tiny program that works, with the same seed at every run (like what the tutorial does), I have commented out my desperate tries to make the seed change.
#include "uniform_int.hpp" #include "boost/random/variate_generator.hpp" #include "boost/random/mersenne_twister.hpp" #include <time.h>
#include <iostream> using namespace std; using namespace boost;
mt19937 gen; // time_t gen = time(0);
int roll_die() { uniform_int<> dist(1, 6); variate_generator<mt19937&, uniform_int<> > die(gen, dist); //boost::variate_generator<time_t, boost::uniform_int<> > die(gen, dist); return die(); }
int main() { for (int i = 0; i < 5; i++) cout << roll_die() << endl;
return 0; }
So, I would be glad, if someone could fix this for me, to have a different seed (depending on system time) at each start. Thanks! _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users