al azar()
La función rand() es una función incorporada en C++ STL, que se define en el archivo de encabezado <cstdlib> . rand() se utiliza para generar una serie de números aleatorios. El número aleatorio se genera mediante el uso de un algoritmo que da una serie de números no relacionados cada vez que se llama a esta función.
La función rand() se usa en C++ para generar números aleatorios en el rango [0, RAND_MAX)
Nota: si se generan números aleatorios con rand() sin llamar primero a srand(), su programa creará la misma secuencia de números cada vez que se ejecute.
Sintaxis:
int rand(void):
Parámetros
Ninguna
Valor devuelto
rand() devuelve un número pseudoaleatorio en el rango de [0, RAND_MAX).
RAND_MAX: es una constante cuyo valor predeterminado puede variar entre implementaciones, pero se garantiza que sea al menos 32767.
Digamos que si estamos generando 5 números aleatorios en C++ con la ayuda de rand() en un ciclo, entonces cada vez que compilamos y ejecutamos el programa, nuestra salida debe ser la misma secuencia de números.
Ejemplo:
C++
// C++ program to demonstrate // the use of rand() #include <cstdlib> #include <iostream> using namespace std; int main() { // This program will create same sequence of // random numbers on every program run for (int i = 0; i < 5; i++) cout << rand() << " "; return 0; }
1804289383 846930886 1681692777 1714636915 1957747793
NOTA: Este programa creará la misma secuencia de números aleatorios en cada ejecución del programa.
srand()
La función srand() establece el punto de partida para producir una serie de números enteros pseudoaleatorios. Si no se llama a srand(), la semilla de rand() se establece como si se llamara a srand(1) al inicio del programa. Cualquier otro valor de semilla establece el generador en un punto de partida diferente.
Sintaxis:
void srand( unsigned seed ); OR int srand( unsigned int seed); Seeds the pseudo-random number generator used by rand() with the value seed.
Parámetros
semilla: una semilla para una nueva secuencia de números pseudoaleatorios que se devolverá mediante llamadas sucesivas a rand()
Valor devuelto
Esta función devuelve un número aleatorio pseudogenerado.
Nota: el generador de números pseudoaleatorios solo se debe sembrar una vez, antes de cualquier llamada a rand() y al inicio del programa. No se debe sembrar o volver a sembrar repetidamente cada vez que desee generar un nuevo lote de números pseudoaleatorios.
La práctica estándar es usar el resultado de una llamada a srand(time(0)) como semilla. Sin embargo, time() devuelve un valor de time_t que varía cada vez y, por lo tanto, el número pseudoaleatorio varía para cada llamada al programa.
C++
// C++ program to generate random numbers #include <cstdlib> #include <iostream> #include <time.h> using namespace std; int main() { // This program will create different sequence of // random numbers on every program run // Use current time as seed for random generator srand(time(0)); for (int i = 0; i < 4; i++) cout << rand() << " "; return 0; }
1326865685 1413967981 1967280748 919663823
NOTA: Este programa creará una secuencia diferente de números aleatorios en cada ejecución del programa.
Complejidad temporal : O(N) donde N es el número de números aleatorios que se generarán
¿Cómo se relacionan srand() y rand() entre sí?
srand() establece la semilla que utiliza rand para generar números «aleatorios». Si no llama a srand antes de su primera llamada a rand, es como si hubiera llamado a srand(1) para establecer la semilla en uno.
En resumen, srand() — Establecer semilla para la función rand() .
Este artículo es una contribución de Shivam Pradhan.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA