Introduzione al generatore di numeri casuali in C ++

Molte volte nella nostra programmazione, sorge una situazione per generare i numeri in modo casuale. Ad esempio gioco di dadi, distribuzione di carte ai giocatori, app per mescolare le canzoni, ecc. Per gestire queste cose dovremmo avere alcune utilità. In C ++ abbiamo due utility per ottenere questa generazione di numeri casuali. In primo luogo, esamineremo quelle funzioni, capiremo le loro esigenze. In seguito li useremo nel nostro codice per ottenere la funzionalità. Cominciamo quindi con le funzioni e la libreria a cui è associato. In questo argomento, impareremo a conoscere il generatore di numeri casuali in C ++.

Come generare un numero casuale?

Per ottenere la generazione di numeri casuali, C ++ fornisce le utilità. Sappiamo tutti che la maggior parte delle funzioni integrate sono incluse nel file di intestazione di C ++. Uno di questi file di intestazione è stdlib.h. È una libreria standard con molte funzioni integrate come EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL, ecc. Usando queste funzioni possiamo facilmente ottenere la soluzione richiesta. Non è necessario scrivere una logica lunga per ottenere il risultato. Invece, possiamo semplicemente chiamare una di queste funzioni integrate secondo le nostre esigenze. Allo stesso modo, per ottenere una generazione di numeri casuali, abbiamo due funzioni integrate. Sono randomizzati e rand. Usandoli entrambi in combinazione possiamo ottenere il risultato desiderato.

Vediamo quali sono sostanzialmente queste funzioni.

  • randomize () - Questa funzione è responsabile della generazione di un numero casuale ogni volta che si esegue il programma. Il risultato sarà unico ogni volta che si esegue il codice. Questo output unico ci fa fare maggiormente affidamento su questa funzione. Ad esempio, la prima volta che quando esegui il codice genererà l'output sarà simile a 75, 23, 56, 24, 5, 21, 76, 32, 20 e 37. La prossima volta genererà l'output come: 5, 64, 51, 78, 94, 53, 41, 19, 96 e 52. Vedremo come sarà l'output con e senza usare questa funzione, scrivendo il codice nella sezione successiva.
  • rand () - Per generare i numeri da 0 a RAND_MAX-1 useremo questa funzione. Qui RAND_MAX indica l'intervallo massimo possibile del numero. Diciamo che dobbiamo generare numeri casuali nell'intervallo, da 0 a 99, quindi il valore di RAND_MAX sarà 100. In base alla necessità dell'applicazione che vogliamo costruire, viene scelto il valore di RAND_MAX. Ad esempio, se si tratta di un gioco di dadi, RAND_MAX sarà 6. Se è un gioco di carte, RAND_MAX sarà 52 ecc.

Basta tenere presente che entrambe le funzioni sono dichiarate nella libreria standard stdlib.h. Quindi non dimenticare di includere questo file di intestazione nel tuo codice. Ora vediamo come possiamo scrivere un semplice programma per generare numeri casuali.

Esempio con passaggi

Ora che abbiamo avuto un'idea di come funziona la funzione di generatore di numeri casuali, scriviamo un programma di base che genererà un numero casuale e stamperà l'output.

Scriviamo il programma passo dopo passo per avere maggiori informazioni sul funzionamento.

  • Il primo passo sarà quello di includere i due file di intestazione necessari per il programma. Il primo se h include le funzionalità di input e output. Questo è il file di intestazione del flusso di input-output. Il secondo e importante file di intestazione è stdlib.h. Come discusso in precedenza, questa libreria standard contiene le due funzioni, rand e randomize. Quindi includili entrambi all'inizio del codice.

#include
#include
using namespace std;

  • Ora che abbiamo incluso i file di intestazione, il passo successivo è scrivere la funzione principale per l'esecuzione del codice. Per definire la funzione principale nella parte successiva.

int main( )
(
)

  • Dichiarare un numero da conservare e stampare il valore del numero casuale. Il tipo di dati sarà del tipo int e darà qualsiasi nome.

int number;

  • È necessario un contatore di loop per incrementare i valori nel loop. Quindi dichiarare l'indice i, di tipo int. Il valore massimo di incremento che definiremo per il ciclo .

int i;

  • Ora scriveremo un ciclo for, per stampare i valori del numero generato casualmente. Per motivi di semplicità, stiamo stampando 10 numeri. Quindi il numero massimo di incrementi sarà 10.

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

  • All'interno di loop, scriveremo la funzione rand. Il codice seguente ci dice che qualsiasi numero casuale generato verrà diviso per 100 e il resto verrà preso. Ciò significa che i numeri stampati saranno compresi tra 0 e 99. Se vuoi intervalli più alti, il numero del modulo sarà diverso. Che è invece di 100 che possiamo posizionare, 150, 200, 100, ecc.

number = rand() % 100;

  • Nell'ultimo passaggio, stamperemo il numero generato, usando cout.

cout << number << "\t";

  • L'output del codice è il seguente. Tieni presente che potresti ottenere un output diverso, dal suo generatore di numeri casuali.

  • Il problema con il codice sopra è ogni volta che eseguiamo il codice otterrà lo stesso set di output. Per evitare che dobbiamo usare srand () Qui stiamo riferendo l'ora in quell'istanza e generando i nuovi valori ogni volta che eseguiamo il programma.

Esaminiamo il codice completo con la funzione 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";
)
)

Due uscite di esecuzione del codice:

Prima esecuzione:

Seconda esecuzione:

  • Di seguito è riportato il codice per generare 5 numeri casuali entro 1000. Modificare il valore del numero e vedere l'output generato in ogni momento. Confronta le differenze di utilizzo senza segno e senza utilizzo.

#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);
)

Produzione:

Per la prima iterazione

Per la seconda iterazione

Conclusione - Generatore di numeri casuali in C ++

In questo articolo abbiamo imparato cos'è un generatore di numeri casuali, esigenze di un generatore di numeri casuali, funzioni integrate di C ++ per raggiungere questo obiettivo, con e senza l'uso della funzione randomize, significato della libreria standard stdlib.h, istruzioni dettagliate scrivere il codice e infine confrontare i risultati di due diversi approcci.

Articoli consigliati

Questa è una guida al generatore di numeri casuali in C ++. Qui discutiamo come generare un numero casuale insieme ad esempi e passaggi. Puoi anche leggere il seguente articolo per saperne di più -

  1. Modificatori di accesso in C ++
  2. Generatore di numeri casuali in Python
  3. Generatore di numeri casuali in R
  4. Variabili in C ++
  5. Modificatori di accesso in PHP
  6. Generatore di numeri casuali in C #
  7. Principali 11 caratteristiche e vantaggi di C ++
  8. Esempi di funzioni integrate di Python

Categoria: