funzione rand() è una funzione incorporata in C++ STL, definita nel file di intestazione . rand() viene utilizzato per generare una serie di numeri casuali. Il numero casuale viene generato utilizzando un algoritmo che fornisce una serie di numeri non correlati ogni volta che viene chiamata questa funzione. La funzione rand() viene utilizzata in C++ per generare numeri casuali nell'intervallo [0, RAND_MAX).
RAND_MAX: È una costante il cui valore predefinito può variare tra le implementazioni ma è garantito che sia almeno 32767.
Sintassi di rand()
int rand (void);>
Parametri di rand()
- Questa funzione non accetta alcun parametro.
Valore restituito da Rand()
- Rand() restituisce un numero pseudo-casuale nell'intervallo [0, RAND_MAX).
Supponiamo che stiamo generando 5 numeri casuali in C++ con l'aiuto di rand() in un ciclo, quindi ogni volta che compiliamo ed eseguiamo il programma il nostro output deve essere la stessa sequenza di numeri.
Esempio di 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;> }> |
>
>Produzione
1804289383 846930886 1681692777 1714636915 1957747793>
Complessità della funzione rand()
La complessità temporale e spaziale della funzione rand() sono le seguenti:
- Complessità temporale: O(1) Complessità spaziale ausiliaria: O(1)
Nota: Questo programma creerà la stessa sequenza di numeri casuali ad ogni esecuzione del programma.
Il programma seguente è l'implementazione della funzione rand() per ottenere un valore compreso tra 0 e N-1
C++
scarica video da youtube vlc
// 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> |
>
>Produzione
83 86 77 15 93>
Il programma seguente è l'implementazione della funzione rand() per ottenere un valore da Upper_Bound a Lower_Bound.
C++
Java se altro
// 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> |
>
>Produzione
66 90 38 99 88>
sabbia()
La funzione srand() è una funzione integrata in C++ STL, definita in file di intestazione. srand() viene utilizzato per inizializzare i generatori di numeri casuali. La funzione srand() imposta il punto di partenza per produrre una serie di numeri interi pseudo-casuali. Se srand() non viene chiamato, il seme rand() viene impostato come se srand(1) fosse chiamato all'avvio del programma. Qualsiasi altro valore per seed imposta il generatore su un punto di partenza diverso.
Sintassi di srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Semina il generatore di numeri pseudo-casuali utilizzato da rand() con il valore seme.
Parametri
- seme: Un seed per una nuova sequenza di numeri pseudo-casuali da restituire dalle chiamate successive a rand()
Valore di ritorno
- Questa funzione restituisce un numero casuale pseudo-generato.
Nota: Il generatore di numeri pseudo-casuali dovrebbe essere seminato solo una volta, prima di qualsiasi chiamata a rand() e all'inizio del programma. Non dovrebbe essere seminato o riseminato ripetutamente ogni volta che si desidera generare un nuovo batch di numeri pseudo-casuali.
La pratica standard consiste nell'utilizzare il risultato di una chiamata a srand(tempo(0)) come il seme. Tuttavia, time() restituisce un valore time_t che varia ogni volta e quindi il numero pseudo-casuale varia per ogni chiamata al programma.

Rand() E sabbia() confronto
Esempio di sand()
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;> }> |
>
>Produzione
1326865685 1413967981 1967280748 919663823>
Complessità temporale : O(N), dove N è il numero di numeri casuali da generare.
Nota: Questo programma creerà una sequenza diversa di numeri casuali ad ogni esecuzione del programma.
In che modo srand() e rand() sono correlati tra loro?
srand() imposta il seme utilizzato da rand per generare numeri casuali. Se non chiami srand prima della prima chiamata a rand, è come se avessi chiamato srand(1) per impostare il seed su uno.
In breve, srand() — Imposta il seme per la funzione rand() .