estoy tratando de utilizar los C++ ETS TechnicalReport1 extensiones para generar números siguientes de una distribución normal, pero este código (adaptado de this article): sóloC++ TR1: cómo usar la distribución_normal?
mt19937 eng;
eng.seed(SEED);
normal_distribution<double> dist;
// XXX if I use the one below it exits the for loop
// uniform_int<int> dist(1, 52);
for (unsigned int i = 0; i < 1000; ++i) {
cout << "Generating " << i << "-th value" << endl;
cout << dist(eng) << endl;
}
impresiones 1 "Generar ..." mensaje de registro , entonces nunca sale del bucle for! Si utilizo la distribución que comenté en su lugar, termina, entonces me pregunto qué estoy haciendo mal. ¿Alguna idea?
¡Muchas gracias!
gracias, funciona como un amuleto, pero me pregunto por qué con este motor funciona, y no con el otro ... – puccio
Obviamente, la única diferencia es que usas el generador de números mt19937 mientras que Jagannath usa std :: tr1 :: ranlux64_base_01. Lógicamente, creo que el error puede estar en la implementación del objeto mt19937 (algo del que nunca antes había oído hablar, por ejemplo :-)) que no forma parte de la biblioteca std. –
¿Es posible vectorizar un bucle for para dibujar números aleatorios? Recuerdo que no se puede vectorizar un ciclo que tiene una llamada de función. – Lindon