Necesito un algoritmo random de alto periodo

Fran
25 de Abril del 2004
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

Alejandro_
25 de Abril del 2004
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