C ++ srand () - biblioteka standardowa C ++

Funkcja srand () w C ++ tworzy generator liczb pseudolosowych używany przez funkcję rand ().

Funkcja srand () w C ++ tworzy generator liczb pseudolosowych używany przez funkcję rand (). Ziarnem funkcji rand () domyślnie jest 1.

Oznacza to, że jeśli przed rand () nie zostanie wywołana żadna funkcja srand (), funkcja rand () zachowuje się tak, jakby została zapoczątkowana przez srand (1).

srand () prototyp

 void srand (unsigned int seed);

Funkcja srand () przyjmuje jako parametr liczbę całkowitą bez znaku, która jest używana jako ziarno przez funkcję rand ().

Jest zdefiniowany w pliku nagłówkowym.

srand () Parametry

  • seed: wartość początkowa typu unsigned int

srand () Zwracana wartość

  • Żaden

Funkcja srand () nie zwraca żadnej wartości.

Przykład 1: Jak działa funkcja srand ()?

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

Po uruchomieniu programu wynik będzie następujący:

 Seed = 1, Losowa liczba = 41 Seed = 5, Losowa liczba = 54

Dobrą praktyką jest zapoczątkowanie generatora liczb pseudolosowych tylko raz na początku programu i przed jakimkolwiek wywołaniem rand (). Nie należy go rozstawiać za każdym razem, gdy musimy wygenerować nowy zestaw liczb.

Standardową praktyką jest użycie wyniku wywołania time (0) jako ziarna. Funkcja time () zwraca liczbę sekund od godziny 00:00, 1 stycznia 1970 UTC (tj. Aktualny znacznik czasu unix). Wartość nasion zmienia się w czasie. Dlatego za każdym razem, gdy uruchamiamy program, generowany jest nowy zestaw liczb losowych.

Przykład 2: funkcja srand () z czasem ()

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

Po uruchomieniu programu wynik będzie następujący:

 Seed = 1485583981 Losowa liczba = 22589

Interesujące artykuły...