Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Números aleatorios
Los números aleatorios tienen mucha aplicación sobre todo en juegos, simulaciones y para
probar algoritmos. Vamos a revisar brevemente las funciones útiles en la generación de
números aleatorios.
rand() % 10
Para simular el tiro de un dado debemos generar números entre 1 y 6. Esto lo hacemos con
la expresión:
1 + rand() % 6
Podemos manejar estas expresiones dentro de funciones. Por ejemplo: la función que
genere un tiro de un dado sería:
double tiroDado(){
return 1 + rand()%6;
}
Con la función rand() podemos generar números aleatorios de doble precisión en algún
intervalo definiendo una función apropiada como la siguiente:
double randDoble(){
return (double)(rand()/32767.0);
}
Note que la división se hace entre el número flotante 32767.0 no entre el entero 32767 ya
que se al dividir entre un entero obtendríamos siempre cero de resultado. La función
anterior genera números aleatorios en el intervalo de 0.0 a 1.0. Para probar la función
escriba la siguiente función main y ejecútela.
main(){
for(int i=0; i<20;i++)
printf(“%f”,randDoble());
getch();
105
}
Note que siempre que se ejecuta el programa se genera la misma secuencia de números
aleatorios. Para secuencias distintas debemos modificar la semilla de los números
aleatorios. Una forma práctica y que es muy difícil que se repita es tomar la hora del día
para establecer dicha semilla. La función time(0) de la biblioteca time.h nos da la
hora actual. Si pasamos esta hora como argumento a la función srand estableceremos
siempre una semilla diferente. En la función main del programa debemos poner
srand(time(0));
Una forma de obtener números aleatorios entre dos límites cualesquiera es mediante la
expresión:
Esta expresión podemos usarla en una función para obtener números aleatorios entre dos
límites:
106