funkce rand(). je vestavěná funkce v C++ STL, která je definována v záhlaví souboru . rand() se používá ke generování série náhodných čísel. Náhodné číslo je generováno pomocí algoritmu, který dává řadu nesouvisejících čísel při každém volání této funkce. Funkce rand() se v C++ používá ke generování náhodných čísel v rozsahu [0, RAND_MAX).
RAND_MAX: Je to konstanta, jejíž výchozí hodnota se může mezi implementacemi lišit, ale je jí přiděleno alespoň 32767.
Syntaxe rand()
int rand (void);>
Parametry rand()
- Tato funkce nepřebírá žádné parametry.
Návratová hodnota rand()
- rand() vrátí pseudonáhodné číslo v rozsahu [0, RAND_MAX).
Řekněme, že generujeme 5 náhodných čísel v C++ pomocí rand() ve smyčce, pak pokaždé, když zkompilujeme a spustíme program, musí být naším výstupem stejná posloupnost čísel.
Příklad 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;> }> |
>
>Výstup
1804289383 846930886 1681692777 1714636915 1957747793>
Složitost funkce rand().
Časová složitost a prostorová složitost funkce rand() jsou následující:
- Časová složitost: O(1) Složitost pomocného prostoru: O(1)
Poznámka: Tento program vytvoří stejnou sekvenci náhodných čísel při každém spuštění programu.
binární vyhledávání
Níže uvedený program je implementací funkce rand() pro získání 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ýstup
jinak pokud java
83 86 77 15 93>
Níže uvedený program je implementací funkce rand() pro získání hodnoty z Upper_Bound do 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ýstup
66 90 38 99 88>
srand()
Funkce srand() je vestavěná funkce v C++ STL, která je definována v hlavičkový soubor. srand() se používá k inicializaci generátorů náhodných čísel. Funkce srand() nastavuje výchozí bod pro vytváření série pseudonáhodných celých čísel. Pokud srand() není zavoláno, semeno rand() je nastaveno tak, jako kdyby srand(1) bylo voláno při spuštění programu. Jakákoli jiná hodnota pro seed nastaví generátor na jiný počáteční bod.
Syntaxe srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Nasadí hodnotu generátoru pseudonáhodných čísel, který používá rand(). semínko.
Parametry
- semínko: Počátek pro novou sekvenci pseudonáhodných čísel, která mají být vrácena postupnými voláními funkce rand()
Návratová hodnota
- Tato funkce vrací pseudogenerované náhodné číslo.
Poznámka: Generátor pseudonáhodných čísel by měl být nasazen pouze jednou, před jakýmkoli voláním rand() a na začátku programu. Nemělo by být opakovaně seedováno nebo znovu nasazováno pokaždé, když chcete vygenerovat novou dávku pseudonáhodných čísel.
Standardní praxí je použít výsledek volání srand(čas(0)) jako semeno. Time() však vrací hodnotu time_t, která se pokaždé mění, a proto se pseudonáhodné číslo mění pro každé volání programu.
jaká kolekce v Javě

rand() a srand() srovnání
Pří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ýstup
1326865685 1413967981 1967280748 919663823>
Časová složitost : O(N), kde N je počet náhodných čísel, která mají být vygenerována.
Poznámka: Tento program vytvoří při každém spuštění programu jinou sekvenci náhodných čísel.
Jak spolu srand() a rand() souvisí?
srand() nastavuje semeno, které rand používá ke generování náhodných čísel. Pokud před prvním voláním do rand nezavoláte srand, je to, jako byste zavolali srand(1), abyste nastavili semeno na jedničku.
Ve zkratce, srand() — Nastaví semeno pro funkci rand(). .