funkcia rand(). je vstavaná funkcia v C++ STL, ktorá je definovaná v hlavičkovom súbore . rand() sa používa na generovanie série náhodných čísel. Náhodné číslo sa generuje pomocou algoritmu, ktorý dáva sériu nesúvisiacich čísel pri každom volaní tejto funkcie. Funkcia rand() sa v C++ používa na generovanie náhodných čísel v rozsahu [0, RAND_MAX).
RAND_MAX: Je to konštanta, ktorej predvolená hodnota sa môže medzi implementáciami líšiť, ale musí byť aspoň 32767.
Syntax funkcie rand()
int rand (void);>
Parametre rand()
- Táto funkcia neberie žiadne parametre.
Návratová hodnota rand()
- rand() vráti pseudonáhodné číslo v rozsahu [0, RAND_MAX).
Povedzme, že generujeme 5 náhodných čísel v C++ pomocou rand() v slučke, potom zakaždým, keď skompilujeme a spustíme program, náš výstup musí byť rovnaká postupnosť čísel.
Príklad rand()
C++
návrhové vzory v jazyku Java
// 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;> }> |
>
>Výkon
1804289383 846930886 1681692777 1714636915 1957747793>
Zložitosť funkcie rand().
Časová zložitosť a priestorová zložitosť funkcie rand() sú nasledovné:
java ak inak
- Časová zložitosť: O(1) Zložitosť pomocného priestoru: O(1)
Poznámka: Tento program vytvorí rovnakú postupnosť náhodných čísel pri každom spustení programu.
Nižšie uvedený program je implementáciou funkcie rand() na získanie hodnoty z rozsahu 0 až 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> |
>
>Výkon
83 86 77 15 93>
Nižšie uvedený program je implementáciou funkcie rand() na získanie hodnoty od Upper_Bound po 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> |
>
>Výkon
66 90 38 99 88>
srand()
Funkcia srand() je vstavaná funkcia v C++ STL, ktorá je definovaná v hlavičkový súbor. srand() sa používa na inicializáciu generátorov náhodných čísel. Funkcia srand() nastavuje počiatočný bod na vytváranie série pseudonáhodných celých čísel. Ak sa srand() nezavolá, semeno rand() sa nastaví tak, ako keby sa srand(1) zavolalo na začiatku programu. Akákoľvek iná hodnota pre osivo nastaví generátor na iný počiatočný bod.
javac nie je rozpoznaný
Syntax funkcie srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Nasadí hodnotu do generátora pseudonáhodných čísel, ktorý používa rand(). semeno.
Parametre
- semeno: Začiatok novej sekvencie pseudonáhodných čísel, ktoré sa majú vrátiť postupnými volaniami funkcie rand()
Návratová hodnota
- Táto funkcia vracia pseudovygenerované náhodné číslo.
Poznámka: Generátor pseudonáhodných čísel by mal byť nasadený iba raz, pred akýmkoľvek volaním funkcie rand() a na začiatku programu. Nemalo by sa opakovane zasievať alebo presievať zakaždým, keď chcete vygenerovať novú dávku pseudonáhodných čísel.
Štandardnou praxou je použiť výsledok hovoru na srand(čas(0)) ako semeno. Time() však vracia hodnotu time_t, ktorá sa zakaždým mení, a preto sa pseudonáhodné číslo mení pri každom volaní programu.

rand() a srand() porovnanie
burak ozcivit
Príklad 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;> }> |
>
>Výkon
1326865685 1413967981 1967280748 919663823>
Časová zložitosť : O(N), kde N je počet náhodných čísel, ktoré sa majú vygenerovať.
Poznámka: Tento program vytvorí inú postupnosť náhodných čísel pri každom spustení programu.
Ako spolu srand() a rand() súvisia?
srand() nastavuje zdroj, ktorý rand používa na generovanie náhodných čísel. Ak nezavoláte srand pred prvým zavolaním na rand, je to ako keby ste zavolali srand(1), aby ste nastavili semeno na jednotku.
V skratke, srand() — Nastaviť semeno pre funkciu rand(). .