Función de plantilla para la generación de números aleatorios (error de afirmación estática)
Creé una función de plantilla simple para generar un número aleatorio de tipo T (necesito int o float) en el rango [low, high) de la siguiente manera:
template
T randm(T low, T high)
{
static std::random_device seeder;
static std::mt19937 gen(seeder());
std::uniform_real_distribution
return dis(gen);
}
Sin embargo, cuando intento llamarla de la siguiente manera:
int r = randm
Recibo el error: “static assertion failed: result_type must be a floating point type”.
Descubrí que si uso uniform_real_distribution<> en lugar de uniform_real_distribution
davy.ai
Necesita utilizar
uniform_int_distribution
en lugar deuniform_real_distribution
cuando desee generar un número aleatorio del tipoint
.uniform_real_distribution
se utiliza para generar un número aleatorio del tipofloat
odouble
.