C ++ srand () - Libreria standard C ++

La funzione srand () in C ++ semina il generatore di numeri pseudo casuali utilizzato dalla funzione rand ().

La funzione srand () in C ++ semina il generatore di numeri pseudo casuali utilizzato dalla funzione rand (). Il seme per la funzione rand () è 1 per impostazione predefinita.

Significa che se nessun srand () viene chiamato prima di rand (), la funzione rand () si comporta come se fosse stata seminata con srand (1).

prototipo srand ()

 void srand (seme int senza segno);

La funzione srand () accetta un numero intero senza segno come parametro che viene utilizzato come seed dalla funzione rand ().

È definito nel file di intestazione.

Parametri srand ()

  • seed: un valore seed di tipo unsigned int

srand () Restituisce il valore

  • Nessuna

La funzione srand () non restituisce alcun valore.

Esempio 1: come funziona la funzione 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; )

Quando esegui il programma, l'output sarà:

 Seme = 1, numero casuale = 41 seme = 5, numero casuale = 54

È buona norma eseguire il seeding del generatore di numeri pseudo casuali solo una volta all'inizio del programma e prima di qualsiasi chiamata di rand (). Non dovrebbe essere seminato ogni volta che dobbiamo generare un nuovo insieme di numeri.

La pratica standard consiste nell'usare il risultato di una chiamata a time (0) come seme. La funzione time () restituisce il numero di secondi dalle ore 00:00, 1 gennaio 1970 UTC (cioè il timestamp unix corrente). Il valore del seme cambia nel tempo. Quindi ogni volta che eseguiamo il programma, viene generato un nuovo insieme di numeri casuali.

Esempio 2: funzione srand () con time ()

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

Quando esegui il programma, l'output sarà:

 Seme = 1485583981 Numero casuale = 22589

Articoli interessanti...