ayuda con una funcion.

xandro
10 de Septiembre del 2003
Soy un universitario de telecos (1r curso) al cual se le encargo la programacion en C del juego Carta Blanca. y hay una funcion que es la de orden aleatorio y me gustaria que alguien me explicase que hace...

Aqui esta el codigo de la funcion...

max=(double)RAND_MAX;
lon=(double)MAX_LON_LISTA;

srand(time(0));

for(kk=0;kk<MAX_LON_LISTA;kk++)
{
ii=(int)(((double)rand()/max)*lon);
jj=(int)(((double)rand()/max)*lon);

ii,jj,kk,max y lon son variables int
MAX_LON_LISTA es una constante int definida

y ahora mis preguntas:

que es srand y rand?
en que afectan las variables max y lon?

weno eso es todo y gracias a los que respondan

chuidiang
10 de Septiembre del 2003
rand() es una función de C que te devuelve un numero aleatorio entero entre 0 y RAND_MAX.

rand() genera números aleatorios a partir de un número semilla. Este número, cada vez que arrancas el programa, es el mismo. Lo que quiere decir que si haces un programa que de 10 números aleatorios y lo ejecutas varias veces, siempre obtendras la misma secuencia de números aleatorios.

La funcion srand() permite cambiar ese número semilla. Es habitual inicializarlo con time(0), de esta forma la secuencia de numeros aleatorios dependera del instante de tiempo en que arranques el programa y será distinta cada vez.

La cuenta (double)rand()/max convierte el numero entero aleatorio entre 0 y RAND_MAX en un número double entre 0.0 y 1.0

Al multiplicarlo por lon, lo estas conviertiendo en un double entre 0.0 y lon. Al hacer (int), lo conviertes en un entero entre 0 y lon.

Se bueno.