Necesito un algoritmo random de alto periodo
Hola, necesito un algoritmo con un periodo de mas de 1000000 o por lo menos una forma de alargar el de la funcion rand() (q tiene un periodo de 236)¿alguien sabe como hacerlo?
Muchas gracias.
Fran
Muchas gracias.
Fran
Hola Fran,
Cada compilador implementa rand() como mejor le parece, ya que el estánar sólo establece que la función devuelva un entero entre 0 y RAND_MAX (definido en stdlib). De todos modos, aún en los compiladores antediluviandos, la siguiente expresión tiene que andar bien:
int r; // el número que se va a generar al azar.
int lim = 1000 // tu límite superior.
int r = ( (double)rand() / (double)(RAND_MAX+1) ) * lim;
Alejandro
Cada compilador implementa rand() como mejor le parece, ya que el estánar sólo establece que la función devuelva un entero entre 0 y RAND_MAX (definido en stdlib). De todos modos, aún en los compiladores antediluviandos, la siguiente expresión tiene que andar bien:
int r; // el número que se va a generar al azar.
int lim = 1000 // tu límite superior.
int r = ( (double)rand() / (double)(RAND_MAX+1) ) * lim;
Alejandro
