C ++ srand () - C ++ standartinė biblioteka

C ++ funkcija srand () sieja pseudo atsitiktinių skaičių generatorių, kurį naudoja rand () funkcija.

C ++ funkcija srand () sieja pseudo atsitiktinių skaičių generatorių, kurį naudoja rand () funkcija. Pagal numatytuosius nustatymus funkcija Rand () yra 1.

Tai reiškia, kad jei prieš rand () nėra iškviečiamas nė vienas srand (), funkcija rand () elgiasi taip, lyg būtų pasėta srand (1).

srand () prototipas

 void srand (nepasirašyta int sėkla);

Funkcijos srand () parametru laikomas nepasirašytas sveikasis skaičius, kurį kaip rand () funkcija naudoja kaip sėklą.

Tai apibrėžta antraštės faile.

srand () Parametrai

  • sėkla: sėklos vertė, kurios tipas nepasirašytas

srand () Grąžinimo vertė

  • Nė vienas

Funkcija srand () negrąžina jokios vertės.

1 pavyzdys: Kaip veikia srand () funkcija?

 #include #include using namespace std; int main() ( int random = rand(); /* No srand() calls before rand(), so seed = 1*/ cout << "Seed = 1, Random number = " << random << endl; srand(5); /* Seed = 5 */ random = rand(); cout << "Seed = 5, Random number = " << random << endl; return 0; )

Kai paleisite programą, išvestis bus:

 Sėkla = 1, atsitiktinis skaičius = 41 sėkla = 5, atsitiktinis skaičius = 54

Gera praktika pseudo atsitiktinių skaičių generatorių pasėti tik vieną kartą programos pradžioje ir prieš bet kokius rando () iškvietimus. Tai neturėtų būti sėjama kiekvieną kartą, kai mums reikia sugeneruoti naują skaičių rinkinį.

Standartinė praktika yra skambučio į laiką (0) rezultato naudojimas kaip pradinis. Funkcija „Time ()“ pateikia sekundžių skaičių nuo 1970 m. Sausio 1 d., 00:00 val., UTC (ty dabartinė „unix“ laiko žymė). Sėklos vertė laikui bėgant keičiasi. Taigi kiekvieną kartą paleidus programą sugeneruojamas naujas atsitiktinių skaičių rinkinys.

2 pavyzdys: „srand“ () funkcija su laiku ()

 #include #include #include using namespace std; int main() ( srand(time(0)); int random = rand(); cout << "Seed = " << time(0) << endl; cout << "Random number = " << random << endl; return 0; )

Kai paleisite programą, išvestis bus:

 Sėkla = 1485583981 Atsitiktinis skaičius = 22589

Įdomios straipsniai...