rand() funktion er en indbygget funktion i C++ STL, som er defineret i header-fil . rand() bruges til at generere en række tilfældige tal. Det tilfældige tal genereres ved at bruge en algoritme, der giver en række ikke-relaterede tal, når denne funktion kaldes. Rand()-funktionen bruges i C++ til at generere tilfældige tal i området [0, RAND_MAX).
RAND_MAX: Det er en konstant, hvis standardværdi kan variere mellem implementeringer, men den er givet til at være mindst 32767.
Syntaks for rand()
int rand (void);>
Parametre for rand()
- Denne funktion tager ingen parametre.
Returværdi af rand()
- rand() returnerer et pseudo-tilfældigt tal i området [0, RAND_MAX).
Lad os sige, at vi genererer 5 tilfældige tal i C++ ved hjælp af rand() i en loop, så hver gang vi kompilerer og kører programmet, skal vores output være den samme talrække.
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;> }> |
>
>Produktion
1804289383 846930886 1681692777 1714636915 1957747793>
Kompleksiteten af rand() funktion
Tidskompleksiteten og rumkompleksiteten af rand()-funktionen er som følger:
- Tidskompleksitet: O(1) Hjælperumskompleksitet: O(1)
Bemærk: Dette program vil skabe den samme sekvens af tilfældige tal ved hvert program, der køres.
Nedenstående program er implementeringen af funktionen rand() for at få en værdi 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> |
>
>Produktion
83 86 77 15 93>
Nedenstående program er implementeringen af funktionen rand() for at få en værdi fra Upper_Bound til Lower_Bound.
C++
andet hvis 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> |
>
>Produktion
66 90 38 99 88>
srand()
srand() funktion er en indbygget funktion i C++ STL, som er defineret i header-fil. srand() bruges til at initialisere tilfældige talgeneratorer. Funktionen srand() sætter udgangspunktet for at producere en række pseudo-tilfældige heltal. Hvis srand() ikke kaldes, sættes rand()-seedet, som om srand(1) blev kaldt ved programstart. Enhver anden værdi for frø sætter generatoren til et andet udgangspunkt.
Syntaks for srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Sætter den pseudo-tilfældige talgenerator, der bruges af rand() med værdien frø.
Parametre
- frø: Et frø til en ny sekvens af pseudo-tilfældige tal, der skal returneres ved successive kald til rand()
Returværdi
- Denne funktion returnerer et pseudo-genereret tilfældigt tal.
Bemærk: Generatoren af pseudo-tilfældige tal bør kun seedes én gang, før eventuelle kald til rand(), og ved starten af programmet. Det bør ikke seedes eller genseedes gentagne gange, hver gang du ønsker at generere en ny batch af pseudo-tilfældige tal.
Standard praksis er at bruge resultatet af et opkald til srand(tid(0)) som frøet. Time() returnerer dog en time_t-værdi, som varierer hver gang, og derfor varierer det pseudo-tilfældige tal for hvert programkald.

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;> }> |
>
>Produktion
1326865685 1413967981 1967280748 919663823>
Tidskompleksitet : O(N), hvor N er antallet af tilfældige tal, der skal genereres.
Bemærk: Dette program vil skabe en anden rækkefølge af tilfældige tal ved hvert program, der køres.
Hvordan er srand() og rand() relateret til hinanden?
srand() sætter frøet, som bruges af rand til at generere tilfældige tal. Hvis du ikke kalder srand før dit første kald til rand, er det, som om du havde kaldt srand(1) for at sætte frøet til en.
Kort sagt, srand() — Sæt Seed for rand() Funktion .