[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