Date: Wed, 14 Jul 2004 14:11:09 -0400
From: Alvaro Herrera <[EMAIL PROTECTED]>
Subject: Re: Como obtener numeros aleatorio en Shell.

> No se me ocurrio como obtenerlo, asi es que me hice
un tipico 
programita
> C que usa rand para obtener numeros aleatorios.

Ten mucho cuidado que en tu programita C los datos
estan "sesgados" es decir que despues de un "tiempo"
que estes tirando numeros aleatorios, estos se te van
a repetir; para eliminar esto, elimina el "sesgo"
inicial con la sentencia srand(seed) donde seed es la
"semilla" para decirle a C use una variedad de los
algoritmos para generar numeros aleatorios que posee.

>$RANDOM ;-)

> # ls wallpapers|sed -n $(random 1 $(ls wallpapers|wc
-l))p

>Yo hice algo muy muy parecido ... si encuentras una
>solucion mejor, por favor avisa.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Some men are heterosexual, and some are bisexual, and
some
men don't think about sex at all... they become
lawyers" (Woody Allen)





=====
"the guardian of the darkness"

Correo Yahoo! - 6 MB, tecnología antispam ¡gratis! 
 Suscribite ya http://correo.yahoo.com.ar/
From [EMAIL PROTECTED]  Wed Jul 14 19:28:42 2004
From: [EMAIL PROTECTED] (Antonio Chay Hidalgo)
Date: Wed Jul 14 19:23:06 2004
Subject: Como obtener numeros aleatorio en Shell.
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

On Wed, 14 Jul 2004 17:31:06 -0400
Alvaro Herrera <[EMAIL PROTECTED]> wrote:
> 
> Si se llega a convertir en un problema, usa un "glob":
> 
> perl -le '@a=<*.jpg>; print $a[int(rand(@a))]' 

  Aun mejor!

  Ahora si que quedo "rudo":

  # wmsetbg "$(perl -le '@a=<$ENV{HOME}/wallpapers/*>; print
$a[int(rand(@a))]')"

Saludos y gracias a todos.
-- 
Antonio Chay Hidalgo <[EMAIL PROTECTED]>
From [EMAIL PROTECTED]  Wed Jul 14 19:39:30 2004
From: [EMAIL PROTECTED] (Antonio Chay Hidalgo)
Date: Wed Jul 14 19:33:49 2004
Subject: rand, srand Era: (sin asunto)
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

On Wed, 14 Jul 2004 19:51:06 -0300 (ART)
juan pablo Rumie Vittar <[EMAIL PROTECTED]> wrote:
> Ten mucho cuidado que en tu programita C los datos
> estan "sesgados" es decir que despues de un "tiempo"
> que estes tirando numeros aleatorios, estos se te van
> a repetir; para eliminar esto, elimina el "sesgo"
> inicial con la sentencia srand(seed) donde seed es la
> "semilla" para decirle a C use una variedad de los
> algoritmos para generar numeros aleatorios que posee.
> 

Cierto.
Este es mi codigo:

    srand(time(0));
    printf("%d\n",
        atoi(argv[1]) + (int)(atof(argv[2])*rand()/(RAND_MAX+1.0)));

Siempre he encontrado practico usar time(0) para obtener una semilla,
ahora que quiza exista un metodo mejor y estoy cegado por la
costumbre.

La obtencion del numero la tome de la pagina del manual de
rand, ya que asi lo recomienda.

Saludos.
-- 
Antonio Chay Hidalgo <[EMAIL PROTECTED]>


Responder a