La fonction

Fermé
walid - 27 oct. 2009 à 15:43
 Pacorbanix - 27 oct. 2009 à 16:26
Bonjour,

EST CE QUE VOUS POUVEZ M4EXPLIQUER cette fonction svp, Srand ?
int rand_ab (int a, int b){
int valeur;
srand (time(null));
val=rand()%(b+1);
while (valeur<a){
valeur=rand()%(b+1);
return valeur;
}

3 réponses

tadwarte Messages postés 10 Date d'inscription jeudi 22 octobre 2009 Statut Membre Dernière intervention 12 novembre 2009 17
27 oct. 2009 à 16:16
salut j'ai pas bien compris cette fonction mais voici un site qui peut t'aider : https://nicolasj.developpez.com/articles/libc/hasard/#LII-A
0
tadwarte Messages postés 10 Date d'inscription jeudi 22 octobre 2009 Statut Membre Dernière intervention 12 novembre 2009 17
27 oct. 2009 à 16:16
salut j'ai pas bien compris cette fonction mais voici un site qui peut t'aider : https://nicolasj.developpez.com/articles/libc/hasard/#LII-A
0
en fait c'est pour générer des nombres aléatoires réalistes.


Un ordinateur ne sait pas faire de hasard.

En fait, si tu ne met pas srand() dans ton programme, et que tu l'exécute 100 fois, tu auras 100 fois exactement les même valeurs ! Car rand utilises en fait une formule spéciale, qui génère des nombres PSEUDO-aléatoires (qui ont l'air aléatoires mais qui ne le sont pas en fait.

Mais cette fonction a besoin d'un nombre de départ. Avec srand() on change se nombre de départ. Si on lui donne l'heure machine comme nombre de départ (srand(time(null)), le temps est différent àé chaque fois que tu lances le programme, et alors les nombres générés pèar rand() auront l'air complètement aléatoires car différents à chaque fois.

Si tu faisais srand (5) par exemple, et que tu essayes ton programme 100 fois, tu obtiendras 100 fois le même résultat. Si tu fais srand(4) tu obtinedra aussi 100 fois le même résultat (mais différent de celui avec srand(5) ).

C'est clair ?
0