Bonsoir,
Voila, je suis en train de faire un algorithme, le but est est de trouve un "Nombre secret" ce nombre secret est generé par un Random:
Float: Rand: Random()
Random donne un nombre (float) compris entre 0 et 1
les borne pour trouver le chiffre son demandé au joueur (genre de 0 à 100..)
Pour l'example on va dire de : 0 à 10
Le probleme maintenant c'est qu'il faut que CHAQUE CHIFFRE EST LA MEME PROBABILITE D?ETRE CHOISIT...
la premiere chose qui me vien a l'esprit c'est de faire:
PS: dans le language que j'utilise (Integer) ARRONDI, donc 1.5 -> 2
NbSecret = (Integer)Rand * 10
donc la j'aurai un chiffre qui se trouvera entre 0 et 10 (Compris)
mais le probleme c'est que les borne (0 et 10) on 2fois moi de chance d'etre choisi...
example de 0 à 2
de 0 à 0.4 = 0 ( la y a en 5)
de 0.5 à 1.4 = 1 (la 10)
de 1.5 à 2 = 2 (et la 6)
j'ai donc fait un ca (par ex de 0 à 10):
NbSecret := ((10 +1)*Rand) mod (10 + 1));
avec ceci chaque chiffre a la meme probabilité detre choisit (car la on a agrandi la borne (de 10 a 11) et le mod(10+1) agrandi la borne (0)
de 0 à 0.4 = 0 ( la y a en 5)
de 0.5 à 1.4 = 1 (la 10)
de 1.5 à 2.4 = 2 (et la 10)
de 2.5 à 3 = 3 (et la 6)
en faite le mod sert en GROS a mettre tout les '3' dans les 0... (car 3 mod 3 = 0..)
Mais je n'ai pas le droit d'utilise Mod,
Il me faut donc une autre Equation..
et la je bloque
si quelqu'un pourrai me donné quelque indice?
d'avance merci
Partager