2006/10/10, Cristian Rodriguez <[EMAIL PROTECTED]>:

>
> [1] http://alexandre.alapetite.net/doc-alex/xslt-php4-php5
>
que ese link sea :

http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/index.en.html#php4_to_php5
From [EMAIL PROTECTED]  Tue Oct 10 23:04:08 2006
From: [EMAIL PROTECTED] (Pablo Cruz Navea)
Date: Wed Oct 11 01:28:31 2006
Subject: srand() + time() en Linux
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

On 10/8/06, Horst H. von Brand <[EMAIL PROTECTED]> wrote:
> Pablo Cruz Navea <[EMAIL PROTECTED]> wrote:
> > estoy trabajando con un programa en C que depende de la generación de
> > números aleatorios. Lo que hago es lo siguiente:
> >
> > ....
> > srand (time (NULL));
> > i = rand () % 2;
> > ....
>
> > Lo de %2 es para generar sólo números binarios. El problema que tengo
> > es que time (NULL) varía muy lentamente, y el programa se "pega" mucho
> > tiempo con los mismos números.
>
> - Se llama srand(3) /una/ vez al comienzo del programa, no cada vez!
> - Usa gettimeofday(2) como fuente de la semilla inicial si segundos no te
>   basta, combina con getpid(2), ...
> - /Lee/ el manual de srand(3), dice /explicitamente/ que esa manera de
>   obtener bits aleatorios no se recomienda (en las implementaciones tipicas
>   de rand(3), simplemente obtienes una secuencia alternante 0101010...)

¿De qué otra forma se podría obtener aleatorios binarios? Para dejar
de usar el rand () % 2 hice algo como esto:

....
srand (....);
val = rand () % 2000;
if (val >= 1000)
   num = 1;
else
   num = 0;
....

Pero eso dependerá de la probabilidad con que los números de rand () %
2000 sean mayores o iguales a 1000 (o bien menores que 1000). ¿Es
buena idea esto?

Saludos.

Responder a