[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