PUBLICIDAD


Números aleatorios - Programación en C


Introducción

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.

Marco teórico

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.


Publicidad


Ejemplos

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;
}

Resultados

Ejercicio 1: Cinco números generados del 0 – 10

Números aleatorios - 1

Ejercicio 2: Cinco números generados del 20 al 40

Números aleatorios - 2

Conclusión

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.






Agregar comentario
1500
¿Cuanto es 5 + 3?
Comentarios
(1)
Gravatar
william dice...

podrían dar mas ejemplos.

©2017-2021 Solución Ingenieril. Todos los derechos reservados