A l'aide!!! réel aléatoire en C
Résolu
lilitiatia
-
lilitiatia -
lilitiatia -
Bonjour,
j'ai un programme de 1 ère année à faire en C et je trouve pas le moyen de générer un réel aléatoire entre 0 (NON COMPRIS!!!!) et un réel quelconque. Merci beaucoup!
j'ai un programme de 1 ère année à faire en C et je trouve pas le moyen de générer un réel aléatoire entre 0 (NON COMPRIS!!!!) et un réel quelconque. Merci beaucoup!
Configuration: Windows XP Firefox 3.0
5 réponses
-
Salut
En C, il me semble que la fonctionr rand() sort un nombre aléatoire mais une ligne est nécessaire au tout début de ton programme pour initialiser le compteur aléatoire:
[code]
srand(time(null));
[/code]
Une fois ceci fait tu peux appeler ta fonction rand() qui génère un nombre aléatoire entre 0 et 1.
Il te suffit de multiplier le nombre sorti par rand() pour gérer les limites.
Reltak. -
Salut,
Tu pourras trouver plus de details sur le site suivant , apparement il donne plusieurs exemple dont le tien:
http://www.games-creators.org/wiki/Les_nombres_al%C3%A9atoires:_la_fonction_rand()_en_C
Pour obtenir des nombres réels inclus entre a et b non compris :
double r;
r = a + ((double) rand() * (b - a) / (RAND_MAX+1));
Pour obtenir plus de précisions il est conseillé de faire
r = a + ((double) rand() / (RAND_MAX + 1)) * ((double) rand() / (RAND_MAX + 1)) * (b - a)ou
r = a + ((double) (rand() + rand() << 16) / ((double) (RAND_MAX + 1) * (RAND_MAX + 1))) * (b - a);
ne pas oublier ce que Reltak a dit
Mich -
merci Mich
mais en appliquant
double r;
r = a + ((double) rand() * (b - a) / (RAND_MAX+1));
avec a = 0.1 ou peu importe, r peut toujours valoir 0. Je ne comprends toujours pourquoi et je ne trouve pas la solution. -
faut faire un srand() avant de faire un rand sinon il va toujours tirer le même chiffre
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -