Bonjour,
J'utilise la fonction rand() pour générer des entiers aléatoirement. Mon problème à chaque exécution de mon programme, rand() me donne les mêmes valeurs pour un certains d'itérations dans le sous programme.
J'explique autrement,
J'ai une classe C1 qui contient deux fonctions f1 et f2. La première fonction fait appel à la deuxième et chacune d'entre elles utilise la fonction rand().
La fonction main()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 class C1 { int fc1(int i) { int j; int somme; j=rand()%10; cout<<j<<endl; somme s=i+j; return somme; } int fc2() { int i; int j; i=rand()%5 cout<<i; j=fc1(i); return j; } int fc3() { for(int i=0;i<4;i++) { int s; s=fc2()+i; } return s; } }
Ce code ne représente pas vraiment mon code mais j'essaye de simplifier le problème afin de trouver la solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <iostream> using namespace std; #include <time.h> #include "C1.h" int main() { srand (time(NULL)); int s=fc3(); cout<<s<<endl; system("PAUSE"); return 0; }
En fait, l'exécution de ce programme donne toujours les mêmes valeurs générées avec rand(). ( pour la boucle for de fc3, les mêmes valeurs générées pour les trois fois)
Partager