Pages : 1
#1 Le 05/03/2007, à 01:26
- Louisiane
[C++]nombre aléatoire
Salut,
j'ai écrit une fonction qui est censé me donner des nombres aléatoires mais lorsque je lance plusieurs fois le programme, j'obtiens toujours le même nombre 83.
Voici mon programme :
#include <iostream>
int random(int min, int max){
return min +(rand() % (max-min));
}
int main(){
int tirage = random(0,100);
printf("%d\n",tirage);
return 0;
}
Qu'est-ce qui ne va pas ?
Merci
#2 Le 05/03/2007, à 02:42
- ssdg
Re : [C++]nombre aléatoire
il y a une fonction qui permet d'initialiser le rand , (je ne sait plus laquelle, mais google peut t'aider) il faut l'initialiser avec un truc dans time.h.
réponse rapide certes, mais qui te donne de bonnes pistes. ca fait trop longtemps que j'ai pas touché à rand pour me souvenir de tout
s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.
Hors ligne
#3 Le 05/03/2007, à 10:12
- Gari
Re : [C++]nombre aléatoire
il me semble que c'est
srand(time(NULL))
qui permet d'initialiser le générateur de nombres aléatoires. Cette fonction doit être appelée une seule fois, au début de ton programme par exemple. Ca donnera :
#include <iostream>
#include <time.h>
int random(int min, int max){
return min +(rand() % (max-min));
}
int main(){
int tirage;
srand(time(NULL));
tirage = random(0,100);
printf("%d\n",tirage);
return 0;
}
Attention : je n'ai pas testé le code que je viens de mettre, c'est juste une idée de ce que ça peut donner. Mais je pense que ça marche quand même
Hors ligne
#4 Le 05/03/2007, à 12:08
- obiwankennedy
Re : [C++]nombre aléatoire
il faut planté une graine.
(je dirais que tout grand chêne à d'abord était un gland..):lol:
ce site peut t'aider:
http://www.fredosaurus.com/notes-cpp/misc/random.html
Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam
Hors ligne
Pages : 1