[C con Clase] Numeros Random

Steven Davidson srd4121 en njit.edu
Mar Jul 24 18:14:58 CEST 2012


Hola Álvaro,

On 7/24/2012 6:02 AM, Álvaro Gómez Uría wrote:
> Hola,
> Como dice el asunto, necesito alguna función para obtener numeros
> randoms entre 0 y 9 pero sin utilizar el time().
> El tema es que tengo que correr el programa de manera paralela en
> varias pc's, y si pongo la función time() no va a funcionar. Tiene
> que ser algo simple, donde yo genere esa semilla aleatoria.
>

Otra solución alternativa se basa en centralizar la generación de 
números pseudo-aleatorios. Quizá no sea la solución simple que buscas, 
pero te la comento para que la tengas presente.

Para llevar a cabo esta centralización, tenemos que preparar que las 
máquinas se comuniquen entre sí. Establece una máquina para que actúe de 
"servidor" de números aleatorios. Por comunicación en red, este servidor 
comunicará a las otras máquinas los mismos números pseudo-aleatorios que 
necesitan. Esto puede ser simplemente una comunicación con tuberías 
(pipes, en inglés) enviando cadenas de caracteres. También puedes hacer 
uso de ficheros de texto para la comunicación local, o cualquier otra 
tecnología que quieras usar.

La otra solución es que si los programas usan las mismas bibliotecas, 
especialmente los mismos algoritmos de 'srand()' y 'rand()', entonces 
puedes optar por enviar el mismo valor semilla desde el servidor a las 
demás máquinas. La ventaja es que se trata de un solo envío de un solo 
número.


Entiendo que no es el método más simple que buscas, pero quizá te sirva 
en alguna otra ocasión.

Hasta pronto,

Steven






Más información sobre la lista de distribución Cconclase