Ich benutze den folgenden Code, um die C ++ - <random>
Bibliothek zu testen .
Warum erhalte ich für jeden Lauf der kompilierten ausführbaren Datei genau die gleiche Reihenfolge? Ist rd()
bei der Zusammenstellung deterministisch? Wie erhalte ich für jeden Lauf eine andere Ausgabe?
GCC 4.8.1 unter Windows 7 64bit. Verwenden der MinGW-Distribution von http://nuwen.net/mingw.html .
BEARBEITEN: Ich habe den gleichen Stückcode mit Visual Studio getestet. Es gibt kein Problem. Die Ausgaben sind nicht deterministisch. Dies könnte ein Fehler in mingw gcc 4.8.1 sein, den ich verwendet habe.
#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
. Wenn ja, ist das ein Fehler.