Introducción al generador de números aleatorios en C ++

Muchas veces en nuestra programación, surge una situación para generar los números al azar. Por ejemplo, juego de dados, distribución de cartas a jugadores, aplicaciones para mezclar las canciones, etc. Para manejar estas cosas deberíamos tener algunas utilidades. En C ++ tenemos dos utilidades para lograr esta generación de números aleatorios. Primero, veremos esas funciones, entenderemos sus necesidades. Más tarde los usaremos en nuestro código para lograr la funcionalidad. Entonces, comencemos con las funciones y la biblioteca con la que está asociada. En este tema, vamos a aprender sobre el generador de números aleatorios en C ++.

¿Cómo generar un número aleatorio?

Para lograr la generación de números aleatorios, C ++ proporciona las utilidades. Todos sabemos que la mayoría de las funciones integradas están incluidas en el archivo de encabezado de C ++. Uno de esos archivos de encabezado es stdlib.h. Es una biblioteca estándar que tiene muchas funciones incorporadas como EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL, etc. Al usar estas funciones podemos obtener fácilmente la solución requerida. No necesitamos escribir una larga lógica para salir. En cambio, simplemente podemos llamar a una de estas funciones integradas según nuestras necesidades. Del mismo modo, para lograr una generación de números aleatorios, tenemos dos funciones integradas. Son aleatorizados y rand. Usando ambos en combinación podemos obtener el resultado deseado.

Veamos cuáles son esas funciones básicamente.

  • randomize () : esta función es responsable de generar un número aleatorio cada vez que ejecuta el programa. El resultado será único cada vez que se ejecute el código. Este resultado único nos hace confiar más en esta función. Por ejemplo, la primera vez que ejecute el código, generará la salida será como 75, 23, 56, 24, 5, 21, 76, 32, 20 y 37. La próxima vez generará la salida como: 5, 64, 51, 78, 94, 53, 41, 19, 96 y 52. ​​Veremos cómo será la salida con y sin usar esta función, escribiendo código en la siguiente sección.
  • rand () - Para generar los números de 0 a RAND_MAX-1 usaremos esta función. Aquí RAND_MAX significa el rango máximo posible del número. Digamos que necesitamos generar números aleatorios en el rango, de 0 a 99, luego el valor de RAND_MAX será 100. Según la necesidad de la aplicación que queremos construir, se elige el valor de RAND_MAX. Por ejemplo, si es un juego de dados, entonces RAND_MAX será 6. Si es un juego de cartas, entonces RAND_MAX será 52, etc.

Solo tenga en cuenta que ambas funciones se declaran en la biblioteca estándar stdlib.h. Así que no olvide incluir este archivo de encabezado en su código. Ahora veamos cómo podemos escribir un programa generador de números aleatorios simple.

Ejemplo con pasos

Ahora que tenemos una idea de cómo funciona la función del generador de números aleatorios, escribamos un programa básico que generará un número aleatorio e imprimirá la salida.

Vamos a escribir el programa paso a paso para obtener más información sobre el trabajo.

  • El primer paso será incluir los dos archivos de encabezado necesarios para el programa. La primera si la h incluye las funcionalidades de entrada y salida. Este es el archivo de encabezado de flujo de entrada-salida. El segundo e importante archivo de encabezado es stdlib.h. Como se discutió anteriormente, esta biblioteca estándar contiene las dos funciones, rand y randomize. Así que inclúyalos al principio del código.

#include
#include
using namespace std;

  • Ahora que hemos incluido los archivos de encabezado, el siguiente paso es escribir la función principal para la ejecución del código. Para definir la función principal en la siguiente parte.

int main( )
(
)

  • Declare un número para retener e imprima el valor del número aleatorio. El tipo de datos será del tipo int y dará cualquier nombre.

int number;

  • Necesitamos un contador de bucle para incrementar los valores en el bucle. Entonces declare el índice i, del tipo int. El valor máximo de incremento que definiremos en for loop .

int i;

  • Ahora escribiremos un bucle for, para imprimir los valores del número generado aleatoriamente. Para simplificar, estamos imprimiendo 10 números. Entonces, el número máximo de incrementos será 10.

for(i = 1; i <= 10; i++)
(
)

  • Dentro del bucle for, escribiremos la función rand. El siguiente código nos dice que cualquier número aleatorio generado se dividirá entre 100 y se tomará el resto. Eso significa que los números impresos serán de 0 a 99. Si desea rangos más altos, el número de módulo será diferente. Es decir, en lugar de 100 podemos colocar, 150, 200, 100, etc.

number = rand() % 100;

  • En el último paso, imprimiremos el número generado, usando cout.

cout << number << "\t";

  • La salida del código es la siguiente. Tenga en cuenta que puede obtener resultados diferentes, ya que es un generador de números aleatorios.

  • El problema con el código anterior es que cada vez que ejecutamos el código obtendremos el mismo conjunto de resultados. Para evitar eso, tenemos que usar el comando srand () Aquí estamos refiriendo el tiempo en esa instancia y generando los nuevos valores cada vez que ejecutamos el programa.

Veamos el código completo con la función srand.

#include
#include
using namespace std;
int main( )
(
int number;
int i;
srand(time(0));
for(i = 1; i <= 10; i++)
(
number = rand() % 100;
cout << number << "\t";
)
)

Dos salidas de ejecución del código:

Primera ejecución:

Segunda ejecución:

  • A continuación se muestra el código para generar 5 números aleatorios dentro de 1000. Cambie el valor del número y vea la salida generada en cada momento. Compare las diferencias de usar sin firmar y sin usar.

#include
#include
#include
int main ()
(
int i, number;
time_t nTime;
number = 5;
srand((unsigned) time(&nTime));
printf("Random numbers are: \n");
for( i = 0 ; i < number ; i++ )
(
printf("%d\n", rand() % 1000);
)
return(0);
)

Salida:

Para la iteración

Para la iteración

Conclusión: generador de números aleatorios en C ++

En este artículo, hemos aprendido qué es un generador de números aleatorios, las necesidades del generador de números aleatorios, las funciones integradas de C ++ para lograr esto, con y sin usar la función de aleatorización, el significado de la biblioteca estándar stdlib.h, instrucciones paso a paso escribir el código y finalmente comparar las salidas de dos enfoques diferentes.

Artículos recomendados

Esta es una guía para el generador de números aleatorios en C ++. Aquí discutimos Cómo generar números aleatorios junto con ejemplos y pasos. También puede consultar el siguiente artículo para obtener más información:

  1. Modificadores de acceso en C ++
  2. Generador de números aleatorios en Python
  3. Generador de números aleatorios en R
  4. Variables en C ++
  5. Modificadores de acceso en PHP
  6. Generador de números aleatorios en C #
  7. Las 11 características y ventajas principales de C ++
  8. Ejemplos de funciones integradas de Python