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!
A voir également:
- A l'aide!!! réel aléatoire en C
- Maps satellite en temps réel - Guide
- Google maps trafic en temps réel - Guide
- Regle reel sur telephone - Guide
- Partager sa position en temps réel - Guide
- Transformer une story en reel - Guide
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.
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.
lilitiatia
oui c'est vrai mais le problème c'est que rand() peut renvoyer 0. Or je veux que 0 ne soit pas compris.
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question