Bonjour,
Je lance plusieurs programme en même temps et je ne peux pas "seeder" le générateur de nombre aléatoire de boost sur le temps CPU.
Sinon les programmes lancés en parallèle donnent des mêmes résultats.
Aprés une petite recherche sur le net j'utilise le générateur de nombre du noyau linux pour "seeder" le "boost::generator" avec :
Connaissez vous une solution portable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ... boost::minstd_rand TheProblem::generator_ = boost::minstd_rand(42u); generator_.seed(GetSeedNumber()); ... int GetSeedNumber() { std::ifstream rand("/dev/urandom"); char tmp[sizeof(int)]; rand.read(tmp,sizeof(int)); rand.close(); int* number = reinterpret_cast<int*>(tmp); return (*number); }
Merci,
Damien.
Partager