Nombres aléatoires + et - en C

Fermé
Seb - 25 févr. 2009 à 12:32
 Seb - 25 févr. 2009 à 13:17
Bonjour a tous

Voila je cherche une fonction capable de générer des nombres pseudo aléatoires dans un fourchette entre -10 et + 10.
J'utilise la fonction rand pour mes nombres positifs mais je ne sais si elle gère le négatif

Merci d'avance !

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
25 févr. 2009 à 12:43
Salut,
rand() renvoie un nombre pseudo-aléatoire entre 0 et RAND_MAX. Donc, à partir de là, faut réussir à trouver une fonction de réduction dans l'intervalle [-10;10].
Par exemple, tu peux faire :
int r;
srand(time(NULL));

r = (int)(-10 + ((double) rand() * (10 - (-10)) / (RAND_MAX+1.0)));

Cdlt
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
25 févr. 2009 à 12:55
Salut,

tu peux faire deux tirages de suite :

- le premier pour la valeur absolue
- le deuxième pour le signe : il suffit de tester la parité du nombre retourné et de décider qu'elle produira le signe moins, par exemple.
0
Merci beaucoup pour vos précieuses infos !
Je part tester ca :)
0