A l'aide!!! réel aléatoire en C
Résolu/Fermé
A voir également:
- A l'aide!!! réel aléatoire en C
- Dans le texte, un seul mot a réellement été écrit en lettres capitales (majuscules). quel est ce mot ? ✓ - Forum Word
- Vue satellite en temps réel gratuit ✓ - Forum Satellite
- Remettre un reel sur la grille de profil ✓ - Forum Instagram
- Jeu gratuit pour gagner de l'argent réel avis - Forum Internet / Réseaux sociaux
- Durée reel instagram - Guide
5 réponses
reltak
Messages postés
260
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
14 janvier 2012
40
23 juin 2008 à 15:44
23 juin 2008 à 15:44
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.
mich62120
Messages postés
631
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2010
6
23 juin 2008 à 15:51
23 juin 2008 à 15:51
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.
kazouu
Messages postés
466
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
24 juillet 2008
12
23 juin 2008 à 16:20
23 juin 2008 à 16:20
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
23 juin 2008 à 15:49