Introducere privind generatorul de număr aleatoriu în C ++

De multe ori în programarea noastră apare o situație pentru a genera numerele la întâmplare. De exemplu, jocul cu zaruri, distribuirea cărților către jucători, aplicații pentru amestecarea melodiilor, etc. Pentru a face față acestor lucruri, ar trebui să avem anumite utilități. În C ++ avem două utilități pentru a realiza această generație aleatorie de numere. În primul rând, vom analiza acele funcții, le vom înțelege nevoile. Ulterior le vom folosi în codul nostru pentru a atinge funcționalitatea. Deci, să începem cu funcțiile și biblioteca cu care este asociată. În acest subiect, vom afla despre generatorul de numere aleatoare din C ++.

Cum să genereze număr aleatoriu?

Pentru a realiza generarea de numere aleatorii, C ++ oferă utilitățile. Știm cu toții că majoritatea funcțiilor încorporate sunt incluse în fișierul antet al C ++. Un astfel de fișier antet este stdlib.h. Este o bibliotecă standard care are multe funcții încorporate, cum ar fi EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL, etc. Folosind aceste funcții putem obține cu ușurință soluția dorită. Nu trebuie să scriem logică îndelungată pentru a ieși. În schimb, putem apela pur și simplu la una dintre aceste funcții încorporate conform nevoilor noastre. În același mod, pentru a realiza o generație aleatorie de numere, avem două funcții încorporate. Sunt randomizate și rand. Folosind ambele în combinație putem obține rezultatul dorit.

Să vedem care sunt aceste funcții.

  • randomize () - Această funcție este responsabilă de generarea unui număr aleatoriu de fiecare dată când rulați programul. Rezultatul va fi unic de fiecare dată când se execută codul. Această ieșire unică ne face să ne bazăm mai mult pe această funcție. De exemplu, prima dată când rulați codul va genera ieșirea va fi ca 75, 23, 56, 24, 5, 21, 76, 32, 20 și 37. Data viitoare va genera ieșirea ca: 5, 64, 51, 78, 94, 53, 41, 19, 96 și 52. Vom vedea cum va fi ieșirea cu și fără a utiliza această funcție, scriind cod în secțiunea următoare.
  • rand () - Pentru a genera numerele de la 0 la RAND_MAX-1 vom folosi această funcție. Aici RAND_MAX semnifică intervalul maxim posibil al numărului. Să zicem că trebuie să generăm numere aleatorii în intervalul 0 până la 99, atunci valoarea RAND_MAX va fi 100. Pe baza nevoii aplicației pe care dorim să o construim, se alege valoarea RAND_MAX. De exemplu, dacă este un joc de zar, atunci RAND_MAX va fi 6. Dacă este un joc de cărți, atunci RAND_MAX va fi 52 etc.

Rețineți că ambele funcții sunt declarate în biblioteca standard stdlib.h. Așadar, nu uitați să includeți acest fișier antet în codul dvs. Acum să vedem cum putem scrie un program simplu generator de numere aleatorii.

Exemplu cu Pași

Acum că ne-am făcut o idee despre funcționarea funcției generatorului de numere aleatorii, să scriem un program de bază care va genera un număr aleatoriu și va tipări rezultatul.

Să scriem programul pas cu pas pentru a obține mai multe informații despre funcționare.

  • Primul pas va fi includerea celor două fișiere antet necesare programului. Primul în cazul în care h include funcționalitățile de intrare și ieșire. Acesta este fișierul antet al fluxului de intrare-ieșire. Al doilea și important fișier antet este stdlib.h. După cum am discutat anterior, această bibliotecă standard conține cele două funcții, rand și randomizare. Așa că includeți-le pe amândouă la începutul codului.

#include
#include
using namespace std;

  • Acum că am inclus fișierele antet, următorul pas este să scrieți funcția principală pentru execuția codului. Pentru a defini funcția principală în partea următoare.

int main( )
(
)

  • Declarați un număr pentru a menține și imprima valoarea numărului aleatoriu. Tipul de date va fi de tipul int și va da orice nume.

int number;

  • Avem nevoie de un contor de buclă pentru a crește valorile din buclă. Deci, declarați indicele i, de tipul int. Valoarea maximă a incrementului pe care o vom defini în buclă .

int i;

  • Acum vom scrie o buclă pentru, pentru tipărirea valorilor numărului generat la întâmplare. Pentru simplitate, imprimăm 10 numere. Deci numărul maxim de creșteri va fi de 10.

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

  • În interior pentru buclă, vom scrie funcția rand. Codul de mai jos ne spune că orice număr aleator generat va fi împărțit la 100 și restul este luat. Aceasta înseamnă că numerele tipărite vor fi cuprinse între 0 și 99. Dacă doriți intervale mai mari, numărul de modulo va fi diferit. Adică în loc de 100 putem plasa, 150, 200, 100 etc.

number = rand() % 100;

  • În ultimul pas, vom tipări numărul generat, folosind cout.

cout << number << "\t";

  • Ieșirea codului este ca mai jos. Vă rugăm să rețineți că puteți obține o ieșire diferită, deoarece generatorul său de numere aleatorii.

  • Problema cu codul de mai sus este de fiecare dată când rulăm codul va primi același set de ieșire. Pentru a evita faptul că trebuie să folosim srandul () Aici ne referim la momentul respectiv și la generarea de noi valori de fiecare dată când rulăm programul.

Să ne uităm la codul complet cu funcția 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";
)
)

Două ieșiri de execuție ale codului:

Prima execuție:

A doua execuție:

  • Mai jos este codul pentru a genera 5 numere aleatorii în 1000. Schimbați valoarea numărului și vedeți ieșirea generată de fiecare dată. Comparați diferențele de utilizare nesemnate și fără a utiliza.

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

ieşire:

Pentru 1 iterație

Pentru a 2 -a iterație

Concluzie - Generator de număr aleatoriu în C ++

În acest articol am aflat care este un generator de numere aleatoare, nevoile generatorului de numere aleatorii, funcțiile încorporate ale C ++ pentru a realiza acest lucru, cu și fără a utiliza funcția de randomizare, semnificația bibliotecii standard stdlib.h, instrucțiuni pas cu pas pentru a scrie codul și în final comparația rezultatelor a două abordări diferite.

Articole recomandate

Acesta este un ghid pentru generatorul de numere aleatoare din C ++. Aici vom discuta despre cum să genereze număr aleatoriu împreună cu exemple și pași. De asemenea, puteți consulta articolul următor pentru a afla mai multe -

  1. Modificatori de acces în C ++
  2. Generator de număr aleatoriu în Python
  3. Generator de număr aleatoriu în R
  4. Variabile în C ++
  5. Modificatori de acces în PHP
  6. Generator de număr aleatoriu în C #
  7. Top 11 caracteristici și avantaje ale C ++
  8. Exemple de funcții Python încorporate