Merci Trap D pour ton explication mais j'avais bien compris
Tu parles de division par RAND_MAX
Or lorsque j'ai écrit :
Citation:
NbSecret := ((10 +1)*Rand) mod (10 + 1));
On ne parlait pas du Rand en C qui genere un nombre entre 0 et RAND_MAX mais du Rand standard qui tire un nombre dans l'interval 0..1
Dans ce cas on a pas besoin de diviser par RAND_MAX puisque la valeur tirée est déjà dans l'interval 0..1
Et c'est la que Miles à écrit :
Citation:
Il vaut mieux diviser par 11 que faire un modulo 11.
Voila pourquoi ma question:
Comment peut on remplacer un modulo par une division ?
Pour répondre à Miles je dirai que j'ai bien lu tes réponses mais j'ai un peut de mal à te comprendre et je ne dois pas être le seul !
Ce que tu dis avais l'air très intéressant :
Citation:
Il vaut mieux diviser par 11 que faire un modulo 11.
Citation:
Si on fait un modulo, on va légèrement biaiser le générateur vers les valeurs faibles, ce qui ne sera pas le cas de la division.
Mais sans example, j'ai du mal à voir de quoi tu parles.
Comment peut on remplacer le modulo par une division dans la formule ?
Citation:
NbSecret := ((10 +1)*Rand) mod (10 + 1));
par ce que si je fais ca, ca donne pas exacetement ce qu'on attendait
Citation:
NbSecret := ((10 +1)*Rand) / (10 + 1));
et cette remarque ?
Citation:
Si on fait un modulo, on va légèrement biaiser le générateur vers les valeurs faibles, ce qui ne sera pas le cas de la division.
Pourrais tu s'il te plait argumenter un petit peu !
Merci d'avance