[LUG.ro] Números aleatorios dentro de un rango específico...

Federico Wiecko lugro@lugro.org.ar
Mon, 26 Jan 2004 20:37:29 -0300


(esto debería estar posteado en la lista de programacion y no en lugro)

Te paso tal cual la página de manual del srand, no creo que tengas
problemas al implementarlo.

#include <stdlib.h>

int rand(void);
void srand(unsigned int semilla);
  La función rand() devuelve un entero pseudo-aleatorio entre 0 y
RAND_MAX.

       La  función  srand()  establece  su  argumento  como  la semilla
de una nueva serie de enteros seudo-aleatorios que serán devueltos en
secuencia por rand().   Estas  secuencias son repetibles si se llama a
srand() con el mismo valor para semilla.

       Si  no  se  proporciona ningún valor para la semilla (i.e., no se
llama a srand()), la función rand() automáticamente coge el valor 1 para
la semilla.


Ejemplo:
 "Si  Ud.  quiere generar un entero aleatorio entre 1 y 10, siempre
debería hacerlo así:

     j=1+(int) (10.0*rand()/(RAND_MAX+1.0));


En linux tambien tenes la funcion random

#include <stdlib.h>

long int random(void);
void srandom(unsigned int semilla);
char *initstate(unsigned int semilla, char *estado, int n);
char *setstate(char *estado);

la unica diferencia entre random y rand parece ser la implementación y
no la generación de numeros aleatorios.

Para mas info, man rand && man random 

Suerte !

El lun, 26-01-2004 a las 20:09, Yahoo User Account (Augusto) escribió:
> 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,