Tôi muốn đặt lại các chuỗi ngẫu nhiên bằng cách sử dụng các số hạt giống khác nhau. Khi chạy mã kiểm tra này:Đặt tăng hạt giống :: ngẫu nhiên
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;
tôi nhận được kết quả như sau:
# 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
Rõ ràng tôi đang làm một cái gì đó rất sai. Làm thế nào tôi có thể khắc phục vấn đề này?
Rất vui khi nó hoạt động! Nhân tiện, bạn được phép (và khuyến khích) chấp nhận câu trả lời của riêng bạn, đặc biệt nếu nó kết hợp ý tưởng của nhiều người để giải quyết vấn đề của bạn. –