[LUG.ro] Re: [LUG.ro] Números aleatorios dentro de un rango espec
ífico...
David Bruno Cortarello
lugro@lugro.org.ar
Tue, 27 Jan 2004 04:10:49 +0100 (MET)
Mirá, te ofresco una opción media (del todo) loca (rara, no portable) pero
divertida (sin tener que usar las funciones rand() o srand()), usando la
creación de números aleatorios que provee el kernel...
La originalidad también tendría que ser tenida en cuenta ;-)
vas a necesitar agregar las cabeceras fcntl.h, stdlib.h, podés hacerlo así:
int aleatorio(void){
int fd;
char buf[1];
fd=open("/dev/urandom",O_RDONLY);
read(fd,buf,1);
close(fd);
fd=(int)*buf;
fd=abs(fd);
return fd;
}
Es loco pero entretenido para no aburrirse con siempre lo mismo :P
Por cierto, esto tendría que haber ido a la lista de programación.
> Hola lista,
>
> Se que hay varios programadores dando vueltas por acá, y como este es un
> problema que tengo específicamente en Linux, creo que no es off-topic
> preguntarlo en esta lista.
>
> Concretamente, necesito obtener un valor entero al azar pero dentro de
> un rango (por ejemplo, entre 0 y 320). De acuerdo a la bibliografía que
> tengo del lenguaje C (Programación en C, Joyanes Aguilar) usando la
> función int random(int x) debería obtener un número aleatorio dentro del
> rango 0 a x-1. Ajá! Esto funciona con el compilador de Borland en DOS,
> pero hete aquí que en Linux, dicha función no admite ningún parámetro...
>
> Bueno, apelo a vuestra sapiencia para que alguno me cuente que método
> podría utilizar para obtener un número aleatorio dentro de un rango de
> valores que pueda compilar usando gcc.
>
> Muchísimas gracias.
>
> Un abrazo,
> --
> Yahoo User Account (Augusto) <asdfg_ar_2000@yahoo.com.ar>
>
>
> _______________________________________________
> Lugro mailing list
> Lugro@lugro.org.ar
> http://www.lugro.org.ar/mailman/listinfo/lugro
>
--
+++ GMX - die erste Adresse für Mail, Message, More +++
Bis 31.1.: TopMail + Digicam für nur 29 EUR http://www.gmx.net/topmail