我試圖使用Boost C++ uniform_01
函數和Mersenne Twister算法生成一個介於0和1之間的隨機實數。這是我的代碼:boost C++使用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的重複,但是這個問題因模棱兩可而被封閉,所以我改述了它。
嘗試從宏循環 – Dani