Compartir: código C++ para generar números aleatorios

 

Este artículo es un análisis detallado y una introducción al código de implementación para generar números aleatorios en C ++. Los amigos que lo necesiten pueden consultarlo.

Cómo generar números aleatorios en C++: Aquí se utilizan las funciones rand() y srand(). No existe una función aleatoria (número int) incorporada en C++.


(1)  Si solo desea generar números aleatorios sin establecer un rango, puede usar rand(): rand() devolverá un valor aleatorio, que oscila entre 0 y RAND_MAX. El valor RAND_MAX es al menos 32767.
Por ejemplo:

El código se muestra a continuación:

#incluir<stdio.h>
#incluir <iostream>
 
El código se muestra a continuación:

int _tmain(int argc, _TCHAR* argv[])
{        for(int i=0;i<10;i++)              cout << rand() << endl; }



(2)  Si desea generar aleatoriamente un número dentro de un cierto rango,
por ejemplo: genere aleatoriamente 10 números del 0 al 99:
El código se muestra a continuación:

#incluir<stdio.h>
#incluir <iostream>
 
El código se muestra a continuación:

int _tmain(int argc, _TCHAR* argv[])
{      for(int x=0;x<10;x++)            cout << rand()%100 << " "); }



En resumen, para generar números aleatorios en el rango de a~b, puedes usar:  a+rand()%(b-a+1)


(3) Sin embargo, cuando los dos ejemplos anteriores se ejecutan varias veces, los resultados de salida siguen siendo los mismos que la primera vez. La ventaja de esto es que facilita la depuración, pero pierde el significado de los números aleatorios. Si desea generar diferentes números aleatorios para cada ejecución, utilizará la función srand(). srand() se utiliza para establecer la semilla del número aleatorio cuando rand() genera números aleatorios. Antes de llamar a la función rand() para generar números aleatorios, primero debe configurar la semilla de números aleatorios (seed) usando srand(). Si la semilla de números aleatorios no está configurada, rand() establecerá automáticamente la semilla de números aleatorios en 1 cuando se llama. Los dos ejemplos anteriores se deben a que la semilla de número aleatorio no está configurada y la semilla de número aleatorio se establece automáticamente en el mismo valor 1 cada vez, lo que hace que los valores aleatorios generados por rand () sean los mismos.


Definición de la función srand(): void srand (unsigned int seed);
normalmente el valor de retorno de geypid() o time(0) se puede usar como semilla.
Si usa time(0), debe agregar el archivo de encabezado #include< tiempo.h >
Por ejemplo:

El código se muestra a continuación:

#include<stdio.h>
#include<time.h>                               
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{  srand((unsigned)time(NULL)); //srand((unsigned)time(0)) srand((int)time(0) for(int i=0;i<10;i++) cout << rand() << endl; }




¡De esta manera, los resultados serán diferentes cada vez que lo ejecutes! !

Reimpreso de: Weidian Reading   https://www.weidianyuedu.com

Supongo que te gusta

Origin blog.csdn.net/weixin_45707610/article/details/131767548
Recomendado
Clasificación