C ++ srand () - C ++ standardbibliotek

Funksjonen srand () i C ++ frø den pseudo tilfeldige tallgeneratoren som brukes av rand () -funksjonen.

Funksjonen srand () i C ++ frø den pseudo tilfeldige tallgeneratoren som brukes av rand () -funksjonen. Funksjonen seed for rand () er 1 som standard.

Det betyr at hvis ingen srand () kalles før rand (), oppfører rand () -funksjonen seg som om den var sådd med srand (1).

srand () prototype

 ugyldig srand (usignert int seed);

Funksjonen srand () tar et usignert heltall som parameter som brukes som seed av funksjonen rand ().

Det er definert i topptekstfilen.

srand () Parametere

  • seed: En frøverdi av typen usignert int

srand () Returverdi

  • Ingen

Funksjonen srand () returnerer ingen verdi.

Eksempel 1: Hvordan fungerer srand () -funksjonen?

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

Når du kjører programmet, vil utdataene være:

 Frø = 1, tilfeldig antall = 41 frø = 5, tilfeldig antall = 54

Det er en god praksis å frø pseudo tilfeldig tallgenerator bare en gang i begynnelsen av programmet og før noen anrop fra rand (). Det bør ikke sås ut hver gang vi trenger å generere et nytt sett med tall.

Standard praksis er å bruke resultatet av en samtale til tid (0) som frøet. Time () -funksjonen returnerer antall sekunder siden 00:00 timer, 1. jan. 1970 UTC (dvs. det nåværende unix-tidsstemplet). Verdien av frø endres med tiden. Så hver gang vi kjører programmet, genereres et nytt sett med tilfeldig tall.

Eksempel 2: srand () -funksjon med tid ()

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

Når du kjører programmet, vil utdataene være:

 Frø = 1485583981 Tilfeldig nummer = 22589

Interessante artikler...