#include <stdlib.h> // <cstdlib> en C++
void srand( unsigned int seed );
L'aléatoire est un concept qu'on a du mal à traiter en informatique, étant données que nos machines sont des systèmes déterministes. Actuellement, l'aléa est simulé via des algorithmes mathématiques qui renvoient des suites de valeurs. Si ces algorithmes sont utilisés plusieurs fois à la suite, ils ont le défaut de toujours renvoyer la même suite de valeurs. Pour contourner ce problème, on initialise souvent ces algorithmes avec une valeur imprédictible : pourquoi pas le temps système de la machine.
La fonction srand
permet d'initialiser le générateur de nombres aléatoires (la fonction rand
) fournit par la librairie C standard.
Cette fonction ne renvoie pas de valeur de retour.
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { printf( "%d\n", rand() ); printf( "%d\n", rand() ); printf( "%d\n", rand() ); srand( time( NULL ) ); printf( "%d\n", rand() ); printf( "%d\n", rand() ); printf( "%d\n", rand() ); return EXIT_SUCCESS; } /* * Si vous lancez ce programme plusieurs fois (à quelques * secondes d'interval), les trois premières valeurs seront * toujours les mêmes. * * Par contre les trois dernières devraient changer étant * donné que le générateur aura été réinitialisé avec une * mesure de temps différente. */
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :