Srand & rand

skypouap - 2 juil. 2013 à 10:29
ghuysmans99
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
- 20 août 2013 à 21:33
Bonjour M et Mme

J'aimerai que quelqu'un m'aide afin d'obtenir le contenu (code source) de srand() et rand().
Au fait je cherche à comprendre l'algorithme qui génère les nombres aléatoires. Merci pour votre aide...

2 réponses

ringo73
Messages postés
29
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
20 août 2017

19 août 2013 à 15:35
Tu ne pourra pas l'avoir : il existe uniquement en code machine (mais tu peux quand meme verifier...).

Pour son fonctionnement, c'est simple:
1/on se positionne qqpart dans une tres longue liste de nombre (de 0 à 30 000 environ) via ex: srand(3479).
2/pour eviter d'etre toujours a la meme position de cette liste à chaque appelle du programme, on met en argument time(NULL) (renvoie le nombre de secondes écoulees depuis 1970)
3/ensuite, on utilise rand() qui renvoie un nombre PSEUDO-aléatoire. A chaque appelle de cette fonction, cette derniere nous renvoie le nombre qui est à l'emplacement "x+nombre de fois où la fonction a été appelé" si "srand(x)".
0
ghuysmans99
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
20 août 2013 à 21:33
Bonsoir,

Si je ne m'abuse, rand() ne se base pas (pas uniquement, en tout cas) sur une liste de nombre prédéterminée. Elle se base sur un seed (donné par srand() ou recalculé au précédent appel de rand()) pour trouver le nombre suivant.

Après une petite recherche sur Google (premier résultat de "rand source code"), j'ai trouvé ceci : http://stackoverflow.com/questions/4768180/rand-implementation
0