En ocasiones necesitamos generar números de manera aleatoria, por ejemplo, si queremos realizar un programa para algún sorteo, o simular el comportamiento de un dado, en esas situaciones necesitamos generar números aleatorios. Para eso ya existe funciones especiales que nos ayudaran a esa tarea, en este tema veremos cómo utilizar dichas funciones.
La función que nos permite generar un número aleatorio es rand(). La sintaxis es la siguiente:
Código:
numero=rand() % numero_máximo; |
---|
Donde:
Si quisiéramos generar números en un rango que no empiece en 0, por ejemplo, 25, tendríamos que sumarle 25 al número aleatorio generado, la sintaxis quedaría así:
Código:
numero=rand() % numero_máximo + 25; |
---|
El problema que tiene la función “rand” es que pasado un determinado número de veces que corre el programa la secuencia de números aleatorios comienza a repetirse, por lo que el término “aleatorio” se perdería. Por lo tanto, se creó otra función llamada srand, el cual generará un número aleatorio en base a otro número que nosotros le proporcionemos. Si nosotros le proporcionamos un número fijo, el número ya no sería aleatorio, por lo tanto debemos buscar otra manera. Para eso utilizaremos como numero base el “tiempo”, el cual siempre está cambiando. Por así decirlo, el tiempo (hora) será la semilla para generar un número aleatorio. Para eso debemos incluir una nueva librería:
Código:
#include <time.h> /* Nueva librería necesaria para la función srand */ |
---|
Y la sintaxis para generar el número aleatorio seria la siguiente:
Código:
srand(time(NULL)); //Generamos número aleatorio en base al tiempo numero=rand() % numero_máximo; //Le indicamos que el numero será entre 0-10 |
---|
A continuación podrán ver algunos ejemplos de cómo utilizarlo.
Ejercicio 1: Generar números aleatorios del 0 al 10.
Código:
/* Generar números aleatorios 0 al 10 - Por Solución Ingenieril*/ #include <stdio.h> /* Declaración librerías*/ #include <stdlib.h> #include <time.h> /* Nueva librería necesaria para la función srand */ int main() { int numero; //Variable donde se guardará nuestro numero aleatorio srand(time(NULL)); //Generamos numero aleatorio en base al tiempo numero=rand() % 11; //Le indicamos que el numero será entre 0-10 printf("%d",numero); //Mostramos el resultado return 0; } |
---|
Ejercicio 2: Generar números aleatorios del 20 al 40.
Código:
/* Generar números aleatorios 20 al 40- Por Solución Ingenieril*/ #include <stdio.h> /* Declaración librerías*/ #include <stdlib.h> #include <time.h> /* Nueva librería necesaria para la funcion srand */ int main() { int numero; //Variable donde se guardara nuestro numero aleatorio srand(time(NULL)); //Generamos numero aleatorio en base al tiempo numero=rand() % 21 + 20; //Le indicamos que el numero será entre 0-20 y sumamos 20 printf("%d",numero); //Mostramos el resultado return 0; } |
---|
Ejercicio 1: Cinco números generados del 0 – 10
Ejercicio 2: Cinco números generados del 20 al 40
En este artículo analizamos como utilizar la función “rand” y “srand”, que nos permitirá generar números aleatorios para nuestros programas. Además, analizamos como cambiar la función para que genere números en distintos rangos.
podrían dar mas ejemplos.