我使用以下代码来测试C ++<random>
库。
为什么每次编译的可执行文件都会得到完全相同的序列?是rd()
在编译时确定的?每次运行如何获得不同的输出?
Windows 7 64位上的GCC 4.8.1。使用http://nuwen.net/mingw.html中的MinGW分发。
编辑:我用Visual Studio测试了相同的代码。没有问题。输出是不确定的。这可能是我使用的mingw gcc 4.8.1中的错误。
#include <iostream>
#include <random>
using namespace std;
int main(){
random_device rd;
mt19937 mt(rd());
uniform_int_distribution<int> dist(0,99);
for (int i = 0; i< 16; ++i){
cout<<dist(mt)<<" ";
}
cout <<endl;
}
entropy() == 0
。如果确实如此,那是一个错误。