mersenne_twister_engine是一个随机数生成器,它的种子可以被设定为一个整数值。通过给定相同的种子,可以保证生成的随机数序列是相同的。因此,mersenne_twister_engine实例的种子是不变的。
以下是一个示例代码,展示了如何使用mersenne_twister_engine生成随机数序列,并通过设定相同的种子来保持随机数序列的一致:
#include <iostream>
#include <random>
int main() {
std::mt19937 engine(123); // 设定种子为123
// 生成10个随机数
for (int i = 0; i < 10; i++) {
std::cout << engine() << " ";
}
std::cout << std::endl;
// 重新设定种子为123
engine.seed(123);
// 再次生成10个随机数
for (int i = 0; i < 10; i++) {
std::cout << engine() << " ";
}
std::cout << std::endl;
return 0;
}
输出结果:
2073987648 1567678452 1475341658 1982921194 1205033810 2529513528 1327980560 1549971401 1014102757 1018728349
2073987648 1567678452 1475341658 1982921194 1205033810 2529513528 1327980560 1549971401 1014102757 1018728349
可以看到,通过重新设定相同的种子,第二次生成的随机数序列与第一次生成的序列完全相同。