funció rand(). és una funció integrada en C++ STL, que es defineix al fitxer de capçalera . rand() s'utilitza per generar una sèrie de nombres aleatoris. El nombre aleatori es genera utilitzant un algorisme que dóna una sèrie de nombres no relacionats sempre que es crida aquesta funció. La funció rand() s'utilitza en C++ per generar nombres aleatoris en l'interval [0, RAND_MAX).
RAND_MAX: És una constant el valor predeterminat de la qual pot variar entre les implementacions, però es concedeix com a mínim 32767.
Sintaxi de rand()
int rand (void);>
Paràmetres de rand()
- Aquesta funció no pren cap paràmetre.
Valor de retorn de rand()
- rand() retorna un nombre pseudoaleatori en l'interval de [0, RAND_MAX).
Per exemple, estem generant 5 nombres aleatoris en C++ amb l'ajuda de rand() en un bucle, llavors cada vegada que compilem i executem el programa, la nostra sortida ha de ser la mateixa seqüència de números.
Exemple 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;> }> |
>
>Sortida
1804289383 846930886 1681692777 1714636915 1957747793>
Complexitat de la funció rand().
La complexitat temporal i la complexitat espacial de la funció rand() són les següents:
- Complexitat temporal: O(1) Complexitat espacial auxiliar: O(1)
Nota: Aquest programa crearà la mateixa seqüència de números aleatoris en cada execució del programa.
El programa següent és la implementació de la funció rand() per obtenir un valor entre 0 i 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> |
>
>Sortida
83 86 77 15 93>
El programa següent és la implementació de la funció rand() per obtenir un valor de Upper_Bound a 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> |
>
>Sortida
66 90 38 99 88>
srand ()
La funció srand() és una funció incorporada a C++ STL, que es defineix a fitxer de capçalera. srand() s'utilitza per inicialitzar generadors de nombres aleatoris. La funció srand() estableix el punt de partida per produir una sèrie de nombres enters pseudoaleatoris. Si no es crida a srand(), la llavor de rand() s'estableix com si srand(1) es cridés a l'inici del programa. Qualsevol altre valor per a llavors estableix el generador en un punt de partida diferent.
Sintaxi de srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Llavors el generador de números pseudoaleatoris utilitzat per rand() amb el valor llavor.
Paràmetres
- llavor: Una llavor per a una nova seqüència de nombres pseudoaleatoris que es retornarà per crides successives a rand()
Valor de retorn
- Aquesta funció retorna un nombre aleatori pseudogenerat.
Nota: El generador de números pseudo-aleatoris només s'ha de sembrar una vegada, abans de qualsevol trucada a rand(), i a l'inici del programa. No s'ha de sembrar o tornar a sembrar repetidament cada vegada que vulgueu generar un nou lot de nombres pseudoaleatoris.
llista de matrius ordenada
La pràctica estàndard és utilitzar el resultat d'una trucada a srand (temps (0)) com la llavor. Tanmateix, time() retorna un valor time_t que varia cada vegada i, per tant, el nombre pseudoaleatori varia per a cada trucada de programa.

rand() i srand () comparació
Exemple 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;> }> |
>
>Sortida
1326865685 1413967981 1967280748 919663823>
Complexitat temporal : O(N), on N és el nombre de nombres aleatoris que s'han de generar.
Nota: Aquest programa crearà una seqüència diferent de números aleatoris a cada execució del programa.
Com es relacionen srand () i rand () entre si?
srand() estableix la llavor que utilitza rand per generar números aleatoris. Si no truqueu a srand abans de la primera trucada a rand, és com si haguéssiu cridat a srand(1) per establir la llavor a un.
En resum, srand() — Estableix la llavor per a la funció rand(). .