【发布时间】:2023-03-07 22:33:01
【问题描述】:
我正在尝试使用 Boost C++ uniform_01 函数和 Mersenne Twister 算法生成 0 到 1 之间的随机实数。这是我的代码:
double random01(mt19937 & generator)
{
uniform_01<mt19937> dist(generator);
return dist();
}
int main()
{
mt19937 generator(time(0));
for (int i = 0; i < 10; i++) {
cout << random01(generator) << endl;
}
return 0;
}
但是,此代码在循环的每次迭代中都会生成相同的随机数。我知道这是this question 的重复,但是这个问题因为模棱两可而被关闭,所以我改写了它。
【问题讨论】:
-
尝试将
uniform_01排除在循环之外