Métodos para generar números aleatorios en C++
El lenguaje de programación C ++ incluye un generador de números pseudo-aleatorio incorporado, así como dos métodos para generar números aleatorios: rand () y srand (). Pasemos los métodos rand () y srand () en profundidad.
Rand ()
Para obtener un número aleatorio, usamos el método rand (). Cuando se invoca, la función rand () en c ++ genera un número pseudo-aleatorio entre 0 y rand max. Siempre que se utilice este método, utiliza un algoritmo que da una sucesión de números aleatorios. No podemos considerar los números creados como genuinamente aleatorios porque se crean mediante el uso de un algoritmo que emplea un valor de semilla; En cambio, nos referimos a números como números pseudo-aleatorios.
Srand ()
El método srand () se usa con frecuencia en combinación con el método rand (). Si no se usa el método srand (), la semilla rand () se genera como si SRAND (1) se hubiera utilizado anteriormente en la configuración del programa. Cualquier otro valor de semilla hace que el generador comience en una nueva ubicación.
Tenga en cuenta que si usa rand () para producir números aleatorios sin ejecutar primero srand (), su código generará la secuencia de los mismos enteros cada vez que se ejecute.
Ejemplo 1
Estamos utilizando el método rand () para generar números aleatorios en una matriz de un entero. Primero, hemos declarado una variable "mynumber" con el tipo de datos entero. La variable "mynumber" toma un valor integral del usuario. Luego, tenemos una matriz entera "rand" y en la siguiente línea, tenemos un ciclo para bucle para que genera un número aleatorio sobre cada iteración utilizando el método rand ().
Tomamos el tamaño de una matriz y luego definimos una matriz de ese tamaño. El método rand () genera números aleatorios, los divide por 10 y almacena el resto en una matriz en una posición específica. La matriz se imprimirá después de la inicialización.
#incluirEl resultado de números aleatorios en una matriz entera se muestra en la siguiente imagen.
Ejemplo 2
Como se discutió, srand () establece la semilla para el método rand (). Creamos el método para llenar una matriz con valores aleatorios utilizando el método srand () en c++. En primer lugar, hemos importado la biblioteca incorporada C ++ "Tiempo.h "que devuelve la marca de tiempo actual en el momento en que se llama a la función. Como resultado, podemos asegurar que se otorgue un valor distinto al método srand () como parámetro cada vez que se realiza el programa.
Luego, tenemos otra biblioteca incorporada, "Stdlib.h "a través del cual podemos acceder a los métodos RAND y SRAND. Tenemos la función principal donde se pone en acción el código. Hemos creado una matriz como una "matriz" de un tamaño personalizado. El tamaño de la matriz será especificado por el usuario. A continuación, hemos utilizado el método SRAND y pasamos el valor de la semilla "NULL" en él. Cada vez que ejecutamos el programa, se genera un conjunto de valores aleatorio y único en lugar de los valores repetidos.
En el bloque de For Loop, tenemos el método rand () que producirá un número aleatorio en cada ciclo de bucle. El comando cout imprimirá el número aleatorio del tamaño de matriz dado.
#incluirEl resultado del número aleatorio del tamaño de la matriz "4" se muestra en la pantalla terminal de Ubuntu.
Ejemplo 3
También podemos generar números aleatorios dentro del rango. En el siguiente programa, implementamos la forma de llenar una matriz con enteros aleatorios dentro de un rango en C++. Hemos creado una matriz como "ARR" que tomará el tamaño de la matriz cuando un usuario lo ingrese.
Luego, establecemos el tiempo de semilla en "nulo" en el método SRAND. Como se utiliza el método SRAND, el programa creará distintos conjuntos de números aleatorios cada vez que se ejecuta. Después de esto, hemos generado un número aleatorio dentro del rango de 0 a 5. Usamos operadores del módulo 5 para llamar al método RAND.
#incluirComo puede ver, el número aleatorio generado se encuentra en el rango de 0 a 5 en la siguiente pieza de la imagen.
Ejemplo 4
Por defecto, la función rand () que vimos antes devuelve un resultado entero, que podría crear un desbordamiento en algunos casos. Como resultado, podemos utilizar una flotación o un valor doble en C++. Generaremos los números aleatorios de flotación en el siguiente código de ejemplo convirtiendo el valor de retorno de la función rand () en 'flotar'.
Al principio, utilicé una función SRAND que pasó un especificador de tipo de datos sin firmar. Ahora solo se mostrará el valor no negativo, yo.mi., el valor positivo y cero, y el tiempo de semilla establecido en nulo. Luego, tenemos una instrucción para bucle for, que recorrerá el ciclo a los 10 valores aleatorios. El comando Cout lanza el tipo de datos de flotación utilizando el método RAND.
#incluirLa salida del programa son números aleatorios que se encuentran entre los valores 0 y 1, que son fracciones. Si no lanzamos el resultado de retorno del método rand () para flotar, entonces 0 se obtendrá como el número aleatorio.
Conclusión
Por lo tanto, podemos crear números aleatorios en C ++ utilizando los dos métodos, rand () y srand (). El método srand () proporciona la semilla para crear números aleatorios, mientras que el método rand () proporciona la secuencia para los siguientes números aleatorios. Hemos discutido los cuatro códigos de ilustración para generar números aleatorios en C++. También hemos mostrado cómo poblar enteros aleatorios en una matriz dentro de un rango.