C ++ srand () - Bibliothèque standard C ++

La fonction srand () en C ++ amorce le générateur de nombres pseudo aléatoires utilisé par la fonction rand ().

La fonction srand () en C ++ amorce le générateur de nombres pseudo aléatoires utilisé par la fonction rand (). La fonction de départ de rand () est 1 par défaut.

Cela signifie que si aucun srand () n'est appelé avant rand (), la fonction rand () se comporte comme si elle avait été amorcée avec srand (1).

prototype srand ()

 void srand (graine int non signée);

La fonction srand () prend un entier non signé comme paramètre qui est utilisé comme graine par la fonction rand ().

Il est défini dans le fichier d'en-tête.

Paramètres srand ()

  • seed: une valeur de départ de type unsigned int

srand () Valeur de retour

  • Aucun

La fonction srand () ne renvoie aucune valeur.

Exemple 1: Comment fonctionne la fonction 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; )

Lorsque vous exécutez le programme, la sortie sera:

 Graine = 1, nombre aléatoire = 41 Graine = 5, nombre aléatoire = 54

C'est une bonne pratique de semer le générateur de nombres pseudo-aléatoires une seule fois au début du programme et avant tout appel de rand (). Il ne devrait pas être semé chaque fois que nous devons générer un nouvel ensemble de nombres.

La pratique courante consiste à utiliser le résultat d'un appel à l'heure (0) comme germe. La fonction time () renvoie le nombre de secondes depuis 00:00 heures, le 1er janvier 1970 UTC (c'est-à-dire l'horodatage Unix actuel). La valeur de la graine change avec le temps. Ainsi, chaque fois que nous exécutons le programme, un nouvel ensemble de nombres aléatoires est généré.

Exemple 2: fonction srand () avec 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; )

Lorsque vous exécutez le programme, la sortie sera:

 Graine = 1485583981 Nombre aléatoire = 22589

Articles intéressants...