C ++ srand () - C ++ standardbibliotek

Funktionen srand () i C ++ frø den pseudo tilfældige talgenerator, der bruges af rand () -funktionen.

Funktionen srand () i C ++ frø den pseudo tilfældige talgenerator, der bruges af rand () -funktionen. Funktionen seed for rand () er 1 som standard.

Det betyder, at hvis der ikke kaldes nogen srand () før rand (), fungerer funktionen rand (), som om den var podet med srand (1).

srand () prototype

 ugyldigt srand (usigneret int frø);

Funktionen srand () tager et usigneret heltal som sin parameter, der bruges som seed af funktionen rand ().

Det er defineret i header-fil.

srand () Parametre

  • frø: En frøværdi af typen usigneret int

srand () Returværdi

  • Ingen

Funktionen srand () returnerer ingen værdi.

Eksempel 1: Hvordan fungerer srand () -funktionen?

 #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 kører programmet, vil output være:

 Frø = 1, tilfældigt antal = 41 frø = 5, tilfældigt antal = 54

Det er en god praksis at frø pseudo tilfældigt talgenerator kun en gang i starten af ​​programmet og før nogen opkald fra rand (). Det skal ikke sås hver gang, vi har brug for at generere et nyt sæt numre.

Standardpraksis er at bruge resultatet af et kald til tid (0) som frøet. Funktionen time () returnerer antallet af sekunder siden 00:00 timer, 1. jan. 1970 UTC (dvs. det aktuelle unix-tidsstempel). Værdien af ​​frø ændres med tiden. Så hver gang vi kører programmet, genereres et nyt sæt tilfældigt tal.

Eksempel 2: srand () -funktion 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 kører programmet, vil output være:

 Frø = 1485583981 Tilfældigt antal = 22589

Interessante artikler...