Я пытаюсь создать модель зомби-апокалипсиса на С++, используя простые структуры, и когда я рандомизирую население, мне нужно, чтобы некоторые поля структуры имели значение в интервале [0..1[. Поскольку меня интересует более статистически корректный анализ, я решил использовать движок mt19937 для генерации своих «данных». Играя с этим PRNG, я не смог найти способ сгенерировать число в указанном диапазоне. Вот код, который я придумал:
int
main ( int argc, char** argv )
{
mt19937_64 newr ( time ( NULL ) );
std::cout << newr.max ( ) << endl;
std::cout << newr.min ( );
double rn;
for(;;){
rn = newr()/newr.max ();
std::cout << rn << std::endl;
}
}
Но единственные результаты, которые я получаю для цикла, - это нули (0). Небольшой отпечаток вывода не работает:
18446744073709551615
0
0
0
0
0
0
0
0
0
0
0
Любые идеи?