Я хотел бы сбросить случайные последовательности, используя разные семенные числа. При выполнении этого тестового кода:Установка начального толчка :: random
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;
gener.seed(1);
cout << rng() << endl;
gener.seed(2);
cout << rng() << endl;
gener.seed(3);
cout << rng() << endl;
Я получаю следующий вывод:
# seed(1) via constructor
-2.971829031
1.706951063
-0.430498971
# seed(2)
-2.282022417
-0.5887503675
# seed(1)
0.2504171986
# seed(2)
-0.5887503675
# seed(3)
0.2504171986
Очевидно, что я делаю что-то очень неправильно. Как я могу решить эту проблему?
Рад, что все получилось! Кстати, вам разрешено (и поощряется) принять ваш собственный ответ, особенно если для решения вашей проблемы потребовалось сочетание нескольких идей. –