=]Sabrolaser[= Posté(e) le 22 novembre 2003 Partager Posté(e) le 22 novembre 2003 Est-ce que quelqu'un sait comment faire pour sortir un nombre aléatoire entre 1 et 6 en C++ ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 22 novembre 2003 Partager Posté(e) le 22 novembre 2003 La réponse est : oui. rand() te renvoie un float entre 0 et 1. Donc quelque chose comme : (int) (rand() * 5 +1) devrait marcher Lien vers le commentaire Partager sur d’autres sites More sharing options...
=]Sabrolaser[= Posté(e) le 22 novembre 2003 Auteur Partager Posté(e) le 22 novembre 2003 Oui , mais rand renvoie un float , donc si si je déclare ma variable utilisant le rand comme un int , est-ce que ca va forcer et transfomer le float en int ?(en prenant la partie entière) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 23 novembre 2003 Partager Posté(e) le 23 novembre 2003 regarde mieux mon code : y'a un cast en int Lien vers le commentaire Partager sur d’autres sites More sharing options...
=]Sabrolaser[= Posté(e) le 23 novembre 2003 Auteur Partager Posté(e) le 23 novembre 2003 euh ,désolé , je commence le C++ , donc le cast je sais pas du tout ce que c'est , désolé Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 23 novembre 2003 Partager Posté(e) le 23 novembre 2003 C'est ce qui permet de faire rentrer des carrés dans des ronds En clair, si tu as un float X, en faisant Y = (int) X , tu obtiens un Y qui est de type int. Le programme change le type à la volée (cast dynamique). Par contre il aut faire très attention avec le cast, parce qu'évidemment quand les deux types ne sont pas les mêmes, il y a forcément des règles de conversion qui sont appliquées, et qui peuvent produire des résultats inattendus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
=]Sabrolaser[= Posté(e) le 23 novembre 2003 Auteur Partager Posté(e) le 23 novembre 2003 OK , merci beaucoup sentinel Lien vers le commentaire Partager sur d’autres sites More sharing options...
mogwai93 Posté(e) le 24 novembre 2003 Partager Posté(e) le 24 novembre 2003 Un article intéressant sur les nombres aléatoires : http://prografix.games-creators.org/document/181 Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 11 décembre 2003 Partager Posté(e) le 11 décembre 2003 Pour éviter les cast, tu peut aussi utiliser suivant les besoins round(), floor() et ceil(). Sinon je te conseille quelque chose comme : 1ere version : utiliser le modulo d'un très grand nombre. Vu la différence entre RANDMAX et 6, les approximations de la division euclidiènne sont négligeables. random()%6+1; 2ieme version : 1 seule fois au début (le temps permet d'avoir une variable pseudo aléatoire). srandom(time(NULL)); Dans ta boucle x=(int)(6*(random())/RAND_MAX); Ce qui permet de ne plus avoir d'approximation mais n'est utile que pour les grandes itérations en proba. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.