Aléatoire uniforme en C

Fermé
melreg Messages postés 40 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 19 mars 2009 - 12 sept. 2008 à 16:07
melreg Messages postés 40 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 19 mars 2009 - 12 sept. 2008 à 16:22
Bonjour,

Est-ce que les lignes de code suivantes assignent un nombre aléatoire de manière uniforme sur {0,1,...,31} à la variable resultat?

resultat = ((double) rand())/RAND_MAX*31;
if(resultat-(int)resultat >= 0.5){
resultat+=1;
}
resultat=(int)resultat;

Merci pour cette précision...

1 réponse

melreg Messages postés 40 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 19 mars 2009
12 sept. 2008 à 16:22
Ou alors il faut écrire :

resultat=((double) rand())/(double)RAND_MAX*31; <--- MODIF
if(resultat-(int)resultat >= 0.5){
resultat+=1;
}
resultat=(int)resultat;
-1