user
En C, à quoi sert la fonction srand() ?
alphonsio

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 :

Disclaimer

This chatbot (Alphonsio) provides automated responses generated by machine-learning algorithms and relies on the accuracy of the underlying language models. While this Chatbot is programmed to provide accurate and relevant information, its information may not always be exhaustive, accurate, up-to-date or tailored to individual circumstances. It is not a substitute for professional advice or consultation with qualified experts. This chatbots and its responses are intended for informational purposes only and should not be used for commercial or business purposes. The creators of this chatbot are not liable for any damages or losses incurred as a result of using the information provided. By using our website, you acknowledge and agree to these terms. The data you submit to this chatbot is used to improve our algorithms. Under no circumstances should you submit sensitive data such as, but not limited to, personal data or passwords. The data you submit could then be made public.