[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,