rand() funktion är en inbyggd funktion i C++ STL, som definieras i huvudfilen . rand() används för att generera en serie slumptal. Slumptalet genereras genom att använda en algoritm som ger en serie icke-relaterade tal närhelst denna funktion anropas. Funktionen rand() används i C++ för att generera slumptal i intervallet [0, RAND_MAX).
RAND_MAX: Det är en konstant vars standardvärde kan variera mellan implementeringar men det är tillåtet att vara minst 32767.
Syntax för rand()
int rand (void);>
Parametrar för rand()
- Denna funktion tar inga parametrar.
Returvärde för rand()
- rand() returnerar ett pseudoslumptal i intervallet [0, RAND_MAX).
Säg att vi genererar 5 slumptal i C++ med hjälp av rand() i en loop, så varje gång vi kompilerar och kör programmet måste vår utdata vara samma talföljd.
Exempel på 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;> }> |
>
>Produktion
sortera arraylist java
1804289383 846930886 1681692777 1714636915 1957747793>
Komplexiteten för funktionen rand().
Tidskomplexiteten och rymdkomplexiteten för funktionen rand() är som följer:
- Tidskomplexitet: O(1) Hjälprumskomplexitet: O(1)
Notera: Detta program kommer att skapa samma sekvens av slumptal vid varje program som körs.
Nedanstående program är implementeringen av funktionen rand() för att få ett värde från intervallet 0 till 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> |
>
>Produktion
string.format java sträng
83 86 77 15 93>
Nedanstående program är implementeringen av funktionen rand() för att få ett värde från Upper_Bound till 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> |
>
>Produktion
66 90 38 99 88>
srand()
srand()-funktionen är en inbyggd funktion i C++ STL, som definieras i header-fil. srand() används för att initiera slumptalsgeneratorer. Funktionen srand() sätter startpunkten för att producera en serie pseudoslumpmässiga heltal. Om srand() inte anropas, sätts rand()-fröet som om srand(1) anropades vid programstarten. Alla andra värden för utsäde sätter generatorn på en annan startpunkt.
Syntax för srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Såddar pseudoslumptalsgeneratorn som används av rand() med värdet utsäde.
Parametrar
- utsäde: Ett frö för en ny sekvens av pseudoslumptal som ska returneras genom successiva anrop till rand()
Returvärde
- Denna funktion returnerar ett pseudogenererat slumptal.
Notera: Generatorn av pseudoslumptal bör endast seedas en gång, före eventuella anrop till rand(), och i början av programmet. Det bör inte seedas eller seedas om varje gång du vill generera en ny batch med pseudoslumptal.
Vanlig praxis är att använda resultatet av ett samtal till srand(tid(0)) som fröet. Emellertid returnerar time() ett time_t-värde som varierar varje gång och följaktligen varierar det pseudo-slumpmässiga numret för varje programanrop.

rand() och srand() jämförelse
Exempel på srand()
C++
gimp-teckensnittslista
// 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;> }> |
>
>Produktion
1326865685 1413967981 1967280748 919663823>
Tidskomplexitet : O(N), där N är antalet slumptal som ska genereras.
Notera: Detta program kommer att skapa en annan sekvens av slumptal vid varje program som körs.
Hur srand() och rand() är relaterade till varandra?
srand() sätter fröet som används av rand för att generera slumptal. Om du inte ringer srand innan ditt första samtal till rand, är det som om du hade anropat srand(1) för att sätta fröet till ett.
Kortfattat, srand() — Ställ in seed för rand()-funktionen .