rand() funksjon er en innebygd funksjon i C++ STL, som er definert i header-filen . rand() brukes til å generere en serie med tilfeldige tall. Det tilfeldige tallet genereres ved å bruke en algoritme som gir en rekke ikke-relaterte tall hver gang denne funksjonen kalles. Rand()-funksjonen brukes i C++ for å generere tilfeldige tall i området [0, RAND_MAX).
RAND_MAX: Det er en konstant hvis standardverdi kan variere mellom implementeringer, men den er gitt til å være minst 32767.
Syntaks for rand()
int rand (void);>
Parametre for rand()
- Denne funksjonen tar ingen parametere.
Returverdi av rand()
- rand() returnerer et pseudo-tilfeldig tall i området [0, RAND_MAX).
La oss si at vi genererer 5 tilfeldige tall i C++ ved hjelp av rand() i en løkke, så hver gang vi kompilerer og kjører programmet må utgangen vår være den samme tallrekkefølgen.
Eksempel på rand()
C++
java hovedmetode
// 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;> }> |
>
>Produksjon
1804289383 846930886 1681692777 1714636915 1957747793>
Kompleksiteten til rand()-funksjonen
Tidskompleksiteten og romkompleksiteten til rand()-funksjonen er som følger:
- Tidskompleksitet: O(1) Ekstraromskompleksitet: O(1)
Merk: Dette programmet vil lage samme sekvens av tilfeldige tall på hvert program som kjøres.
Programmet nedenfor er implementeringen av rand()-funksjonen for å få en verdi fra området 0 til 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> |
>
>Produksjon
83 86 77 15 93>
Programmet nedenfor er implementeringen av rand()-funksjonen for å få en verdi fra Upper_Bound til Lower_Bound.
C++
string.replaceall i java
// 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> |
>
>Produksjon
66 90 38 99 88>
srand()
srand()-funksjonen er en innebygd funksjon i C++ STL, som er definert i header-fil. srand() brukes til å initialisere tilfeldige tallgeneratorer. Funksjonen srand() setter utgangspunktet for å produsere en serie med pseudo-tilfeldige heltall. Hvis srand() ikke kalles, settes rand()-frøet som om srand(1) ble kalt ved programstart. Enhver annen verdi for frø setter generatoren til et annet startpunkt.
Syntaks for srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Setter pseudo-tilfeldig tallgenerator som brukes av rand() med verdien frø.
Parametere
- frø: Et frø for en ny sekvens av pseudo-tilfeldige tall som skal returneres ved påfølgende kall til rand()
Returverdi
- Denne funksjonen returnerer et pseudogenerert tilfeldig tall.
Merk: Generatoren av pseudo-tilfeldig tall skal bare sees én gang, før eventuelle kall til rand(), og ved starten av programmet. Den bør ikke sees eller sees på nytt hver gang du ønsker å generere en ny gruppe med pseudo-tilfeldige tall.
Standard praksis er å bruke resultatet av en samtale til srand(tid(0)) som frøet. Time() returnerer imidlertid en time_t-verdi som varierer hver gang, og derfor varierer det pseudo-tilfeldige tallet for hvert programkall.

rand() og srand() sammenligning
Eksempel på 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;> }> |
>
>Produksjon
1326865685 1413967981 1967280748 919663823>
Tidskompleksitet : O(N), hvor N er antallet tilfeldige tall som skal genereres.
Merk: Dette programmet vil lage en annen sekvens av tilfeldige tall for hvert program som kjøres.
Hvordan er srand() og rand() relatert til hverandre?
srand() setter frøet som brukes av rand til å generere tilfeldige tall. Hvis du ikke ringer srand før ditt første kall til rand, er det som om du hadde kalt srand(1) for å sette frøet til en.
Kort oppsummert, srand() — Sett frø for rand()-funksjonen .