funcția rand(). este o funcție încorporată în C++ STL, care este definită în fișierul antet . rand() este folosit pentru a genera o serie de numere aleatoare. Numărul aleatoriu este generat utilizând un algoritm care oferă o serie de numere neînrudite ori de câte ori este apelată această funcție. Funcția rand() este utilizată în C++ pentru a genera numere aleatoare în intervalul [0, RAND_MAX).
tip casting și conversie tip în java
RAND_MAX: Este o constantă a cărei valoare implicită poate varia între implementări, dar se acordă să fie cel puțin 32767.
Sintaxa lui rand()
int rand (void);>
Parametrii rand()
- Această funcție nu preia niciun parametru.
Valoarea de returnare a rand()
- rand() returnează un număr pseudo-aleatoriu în intervalul [0, RAND_MAX).
Să spunem, generăm 5 numere aleatoare în C++ cu ajutorul rand() într-o buclă, apoi de fiecare dată când compilam și rulăm programul, rezultatul nostru trebuie să fie aceeași secvență de numere.
Exemplu de rand()
C++
// C++ program to demonstrate> // the use of rand()> #include> #include> using> namespace> std;> > int> main()> {> >// This program will create some sequence of> >// random numbers on every program run> >for> (>int> i = 0; i <5; i++)> >cout <<>rand>() <<>' '>;> > >return> 0;> }> |
>
>Ieșire
1804289383 846930886 1681692777 1714636915 1957747793>
Complexitatea funcției rand().
Complexitatea timpului și complexitatea spațială a funcției rand() sunt după cum urmează:
string.format java string
- Complexitatea timpului: O(1) Complexitatea spațiului auxiliar: O(1)
Notă: Acest program va crea aceeași secvență de numere aleatorii la fiecare rulare a programului.
Programul de mai jos este implementarea funcției rand() pentru a obține o valoare din intervalul 0 la N-1
C++
// C++ program to demonstrate the> // use of rand() to get value> // in a range of 0 to N-1> #include> #include> using> namespace> std;> > int> main()> {> >int> N = 100;> >// This program will create some sequence of random> >// numbers on every program run within range 0 to N-1> >for> (>int> i = 0; i <5; i++)> >cout <<>rand>() % N <<>' '>;> > >return> 0;> }> > // This code is contributed by Susobhan Akhuli> |
>
>Ieșire
83 86 77 15 93>
Programul de mai jos este implementarea funcției rand() pentru a obține o valoare de la Upper_Bound la Lower_Bound.
C++
// C++ program to demonstrate> // the use of rand() to get value> // in a range of lb to ub> #include> #include> using> namespace> std;> > int> main()> {> >int> lb = 20, ub = 100;> >// This program will create some sequence of random> >// numbers on every program run within range lb to ub> >for> (>int> i = 0; i <5; i++)> >cout << (>rand>() % (ub - lb + 1)) + lb <<>' '>;> > >return> 0;> }> > // This code is contributed by Susobhan Akhuli> |
>
>
derivate parțiale din latexIeșire
66 90 38 99 88>
srand()
Funcția srand() este o funcție încorporată în C++ STL, care este definită în fișier antet. srand() este folosit pentru a inițializa generatoare de numere aleatoare. Funcția srand() stabilește punctul de pornire pentru producerea unei serii de numere întregi pseudoaleatoare. Dacă srand() nu este apelat, seed-ul rand() este setat ca și cum srand(1) ar fi apelat la pornirea programului. Orice altă valoare pentru semințe setează generatorul la un punct de pornire diferit.
Sintaxa lui srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Seedează generatorul de numere pseudo-aleatoare folosit de rand() cu valoarea sămânță.
Parametrii
- samanta: O sămânță pentru o nouă secvență de numere pseudoaleatoare care va fi returnată prin apeluri succesive la rand()
Valoare returnată
- Această funcție returnează un număr aleator pseudo-generat.
Notă: Generatorul de numere pseudoaleatoare ar trebui să fie seed o singură dată, înainte de orice apel la rand() și la începutul programului. Nu ar trebui să fie însămânțat sau reînsămânțat în mod repetat de fiecare dată când doriți să generați un nou lot de numere pseudoaleatoare.
Practica standard este de a folosi rezultatul unui apel către srand(timp(0)) ca sămânță. Cu toate acestea, time() returnează o valoare time_t care variază de fiecare dată și, prin urmare, numărul pseudo-aleatoriu variază pentru fiecare apel de program.

rand() și srand() comparaţie
Exemplu de srand()
C++
// C++ program to generate random numbers> #include> #include> #include> 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;> }> |
>
>Ieșire
1326865685 1413967981 1967280748 919663823>
Complexitatea timpului : O(N), unde N este numărul de numere aleatorii care trebuie generate.
cochilie din nou
Notă: Acest program va crea o secvență diferită de numere aleatorii la fiecare rulare a programului.
Cum srand() și rand() sunt legate între ele?
srand() setează sămânța care este folosită de rand pentru a genera numere aleatoare. Dacă nu apelați srand înainte de primul apel la rand, este ca și cum ați fi apelat srand(1) pentru a seta semința la unul.
În scurt, srand() — Setează Seed pentru funcția rand(). .