Я использую следующий код для тестирования библиотеки c++ <random>
.
Почему я получаю точно такую же последовательность для каждого запуска скомпилированного исполняемого файла? Является ли rd()
детерминированным при компиляции? Как получить разные выходные данные для каждого прогона?
GCC 4.8.1 на Windows 7 64bit. Использование дистрибутива MinGW из http://nuwen.net/mingw.html
EDIT: Я тестировал один и тот же код с 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;
}