He escrito un generador de números aleatorios simple en C. int l
es el límite inferior y int u
es el límite superior.srand (time (NULL)) no cambia el valor inicial lo suficientemente rápido
Funciona bien, sin embargo, tengo una pregunta con respecto a sembrarlo. Si tuviera que ejecutar esto en un bucle, time(NULL)
no cambia el valor inicial lo suficientemente rápido para poder evitar obtener una serie consecutiva de números aleatorios que sean exactamente iguales.
Me pregunto cómo alguien más podría haber abordado este problema. Todos los ejemplos que he encontrado en línea usan time(NULL)
como el generador de valores iniciales.
int generateRandom(int l, int u)
{
srand(time(NULL));
int r = rand() % ((u - l) + 1);
r = l + r;
return r;
}
Si tuviera que ejecutar estas líneas de código uno al lado del otro, ambos Rand1
y Rand2
sería exactamente el mismo.
printf("Rand1 = %d\n", generateRandom(10, 46));
printf("Rand2 = %d\n", generateRandom(10, 46));
¡Uf! ¡No mencione las variables como un simple 'l' sin adornos! Prefiero 'lb',' lower', 'lowbound', ... – pmg