En C, que fait la fonction rand(time(NULL)) ?
La fonction srand()
sert à initialiser le générateur pseudo-aléatoire, car la fonction rand()
ne tire pas véritablement des nombres au hasard.
Les ordinateurs sont incapables de produire de véritables nombres aléatoires, ils utilisent classiquement des générateurs pseudo-aléatoires qui génère en réalité des suites de nombres qui ont des propriétés similaires aux nombres aléatoires.
Le problème est, qu'à conditions initiales identiques, les suites générées sont toujours identiques. Pour obtenir des suites de nombres différentes, ce qui est généralement le cas lorsque l'on utilise un générateur pseudo-aléatoire, il est nécessaire d'initialiser la suite de façon différente. C'est ce que l'on appelle la graine (seed en anglais). La fonction srand (unsigned int seed)
permet d'initialiser le générateur pseudo-aléatoire.
La solution communément adoptée pour initialiser le générateur est l'utilisation de l'heure courante de la machine qui, comme elle change constamment, va produire des graines et donc des nombres qui seront différents à chaque instant. D'où l'exécution du code suivant :
// Initialise le générateur pseudo-aléatoires
rand (time(NULL))
Voir aussi :
- Comment tirer un nombre aléatoire en C ?
- En C, comment tirer un nombre aléatoire dans un intervalle ?
- Dans quelle bibliothèque se trouve la fonction rand() en C ?
La fonction srand()
sert à initialiser le générateur pseudo-aléatoire, car la fonction rand()
ne tire pas véritablement des nombres au hasard.
Les ordinateurs sont incapables de produire de véritables nombres aléatoires, ils utilisent classiquement des générateurs pseudo-aléatoires qui génère en réalité des suites de nombres qui ont des propriétés similaires aux nombres aléatoires.
Le problème est, qu'à conditions initiales identiques, les suites générées sont toujours identiques. Pour obtenir des suites de nombres différentes, ce qui est généralement le cas lorsque l'on utilise un générateur pseudo-aléatoire, il est nécessaire d'initialiser la suite de façon différente. C'est ce que l'on appelle la graine (seed en anglais). La fonction srand (unsigned int seed)
permet d'initialiser le générateur pseudo-aléatoire.
La solution communément adoptée pour initialiser le générateur est l'utilisation de l'heure courante de la machine qui, comme elle change constamment, va produire des graines et donc des nombres qui seront différents à chaque instant. D'où l'exécution du code suivant :
// Initialise le générateur pseudo-aléatoires
rand (time(NULL))
Voir aussi :
- Comment tirer un nombre aléatoire en C ?
- En C, comment tirer un nombre aléatoire dans un intervalle ?
- Dans quelle bibliothèque se trouve la fonction rand() en C ?
La fonction srand()
sert à initialiser le générateur pseudo-aléatoire, car la fonction rand()
ne tire pas véritablement des nombres au hasard.
Les ordinateurs sont incapables de produire de véritables nombres aléatoires, ils utilisent classiquement des générateurs pseudo-aléatoires qui génère en réalité des suites de nombres qui ont des propriétés similaires aux nombres aléatoires.
Le problème est, qu'à conditions initiales identiques, les suites générées sont toujours identiques. Pour obtenir des suites de nombres différentes, ce qui est généralement le cas lorsque l'on utilise un générateur pseudo-aléatoire, il est nécessaire d'initialiser la suite de façon différente. C'est ce que l'on appelle la graine (seed en anglais). La fonction srand (unsigned int seed)
permet d'initialiser le générateur pseudo-aléatoire.
La solution communément adoptée pour initialiser le générateur est l'utilisation de l'heure courante de la machine qui, comme elle change constamment, va produire des graines et donc des nombres qui seront différents à chaque instant. D'où l'exécution du code suivant :
// Initialise le générateur pseudo-aléatoires
rand (time(NULL))
Voir aussi :
- Comment tirer un nombre aléatoire en C ?
- Dans quelle bibliothèque se trouve la fonction rand() en C ?
La fonction srand()
sert à initialiser le générateur pseudo-aléatoire, car la fonction rand()
ne tire pas véritablement des nombres au hasard.
Les ordinateurs sont incapables de produire de véritables nombres aléatoires, ils utilisent classiquement des générateurs pseudo-aléatoires qui génère en réalité des suites de nombres qui ont des propriétés similaires aux nombres aléatoires.
Le problème est, qu'à conditions initiales identiques, les suites générées sont toujours identiques. Pour obtenir des suites de nombres différentes, ce qui est généralement le cas lorsque l'on utilise un générateur pseudo-aléatoire, il est nécessaire d'initialiser la suite de façon différente. C'est ce que l'on appelle la graine (seed en anglais). La fonction srand (unsigned int seed)
permet d'initialiser le générateur pseudo-aléatoire.
La solution communément adoptée pour initialiser le générateur est l'utilisation de l'heure courante de la machine qui, comme elle change constamment, va produire des graines et donc des nombres qui seront différents à chaque instant. D'où l'exécution du code suivant :
// Initialise le générateur pseudo-aléatoires
rand (time(NULL))
Voire aussi :
- Comment tirer un nombre aléatoire en C ?
- Dans quelle bibliothèque se trouve la fonction rand() en C ?
La fonction srand() sert à initialiser le générateur pseudo-aléatoire, car la fonction rand() ne tire pas véritablement des nombres au hasard.
Les ordinateurs sont incapables de produire de véritables nombres aléatoires, ils utilisent classiquement des générateurs pseudo-aléatoires qui génère en réalité des suites de nombres qui ont des propriétés similaires aux nombres aléatoires.
Le problème est qu'à conditions initiales identiques, les suites générées sont toujours identiques. Pour obtenir des suites de nombres différentes, ce qui est généralement le cas lorsque l'on utilise un générateur pseudo-aléatoire, il est nécessaire d'initialiser la suite de façon différente. C'est ce que l'on appelle la graine (seed en anglais). La fonction srand (unsigned int seed) permet d'initialiser le générateur pseudo-aléatoire.
La solution communément adoptée pour initialiser le générateur est l'utilisation de l'heure courante de la machine qui, comme elle change constamment, va produire des graines et donc des nombres qui seront différents à chaque instant. D'où l'exécution du code suivant :
// Initialise le générateur pseudo-aléatoires
rand (time(NULL))
Voire aussi :
- Comment tirer un nombre aléatoire en C ?
- Dans quelle bibliothèque se trouve la fonction rand() en C ?
# | ID | Query | URL | Count |
---|