Aller au contenu

Rand.h


=]Sabrolaser[=

Messages recommandés

C'est ce qui permet de faire rentrer des carrés dans des ronds :chinois:

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

  • 3 semaines après...

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...