C ++ srand () - C ++ standardna biblioteka

Funkcija srand () u C ++ postavlja generator pseudo slučajnih brojeva koji koristi funkcija rand ().

Funkcija srand () u C ++ postavlja generator pseudo slučajnih brojeva koji koristi funkcija rand (). Funkcija sjemena za rand () prema zadanim je postavkama 1.

To znači da ako se niti jedan srand () ne pozove prije rand (), funkcija rand () ponaša se kao da je zasijana srandom (1).

srand () prototip

 void srand (nepotpisano int sjeme);

Funkcija srand () uzima svoj nepotpisani cijeli broj kao svoj parametar koji rand () koristi kao izvor.

Definirano je u datoteci zaglavlja.

srand () parametri

  • sjeme: Vrijednost sjemena tipa unsigned int

srand () Povratna vrijednost

  • Nijedna

Funkcija srand () ne vraća nikakvu vrijednost.

Primjer 1: Kako funkcionira 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; )

Kada pokrenete program, izlaz će biti:

 Sjeme = 1, slučajan broj = 41 sjeme = 5, slučajni broj = 54

Dobra je praksa postavljati generator pseudo slučajnih brojeva samo jednom na početku programa i prije bilo kakvih poziva rand (). Ne bi ga trebalo saditi svaki put kada trebamo generirati novi skup brojeva.

Standardna praksa je koristiti rezultat poziva vremena (0) kao sjeme. Funkcija time () vraća broj sekundi od 00:00 sati, 1. siječnja 1970. UTC (tj. Trenutna vremenska oznaka unix). Vrijednost sjemena mijenja se s vremenom. Dakle, svaki put kad pokrenemo program, generira se novi skup slučajnih brojeva.

Primjer 2: srand () funkcija s vremenom ()

 #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; )

Kada pokrenete program, izlaz će biti:

 Sjeme = 1485583981 Slučajni broj = 22589

Zanimljivi članci...