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