我正在尝试运行此代码:
#include <iostream>
#include <random>
void foo() {
std::random_device rd;
std::mt19937 mt(rd());
std::uniform_real_distribution<double> prob(0, 1);
std::cout << prob(mt) << '\n';
}
int main() {
for (int i = 0; i < 5; ++i) {
foo();
}
return 0;
}
在 mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64 我得到这个结果:
0.726249
0.726249
0.726249
0.726249
0.726249
但是在 ideone 和 g++ 上,我得到不同的数字。那么问题是什么?