C ++ srand () - C ++ standarta bibliotēka

Funkcija srand () C ++ sēj pseido nejaušo skaitļu ģeneratoru, ko izmanto rand () funkcija.

Funkcija srand () C ++ sēj pseido nejaušo skaitļu ģeneratoru, ko izmanto rand () funkcija. Funkcija sēkla randam () pēc noklusējuma ir 1.

Tas nozīmē, ka, ja pirms rand () netiek izsaukts neviens srand (), funkcija rand () rīkojas tā, it kā tā būtu iesēta ar srand (1).

srand () prototips

 void srand (neparakstīta int sēkla);

Funkcija srand () kā parametru ņem neparakstītu veselu skaitli, ko kā sēkla izmanto funkcija rand ().

Tas ir definēts galvenes failā.

srand () Parametri

  • sēkla: neparakstīta int veida sēklas vērtība

srand () Atgriešanās vērtība

  • Nav

Funkcija srand () neatgriež vērtību.

1. piemērs: Kā darbojas 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; )

Palaidot programmu, izeja būs:

 Sēkla = 1, nejaušs skaitlis = 41 sēkla = 5, nejaušs skaitlis = 54

Tā ir laba prakse, lai pseido nejaušo skaitļu ģeneratoru sētu tikai vienu reizi programmas sākumā un pirms jebkādiem rand () izsaukumiem. To nevajadzētu sēt katru reizi, kad mums ir jāveido jauns skaitļu kopums.

Standarta prakse ir izsaukuma uz laiku (0) rezultāta izmantošana kā pamats. Funkcija time () atgriež sekunžu skaitu kopš plkst. 00:00 stundām, 1970. gada 1. janvāra pēc UTC (ti, pašreizējā unix laika zīmoga). Sēklu vērtība mainās ar laiku. Tāpēc katru reizi, kad palaižam programmu, tiek ģenerēts jauns nejaušo skaitļu kopums.

2. piemērs: funkcija srand () ar 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; )

Palaidot programmu, izeja būs:

 Sēkla = 1485583981 Nejaušs skaitlis = 22589

Interesanti raksti...