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.

