Bonjour,
Je cherche à comprendre pourquoi pour générer un nombre au hasard de 1 à 6. On doit faire (6 * rnd) + 1 ? Je comprends qu'on doit mettre +1 pour éviter qu'on obtienne 0 mais finalement on peut obtenir 7 qui n'appartient pas à [1 : 6] ?
Bonjour,
Je cherche à comprendre pourquoi pour générer un nombre au hasard de 1 à 6. On doit faire (6 * rnd) + 1 ? Je comprends qu'on doit mettre +1 pour éviter qu'on obtienne 0 mais finalement on peut obtenir 7 qui n'appartient pas à [1 : 6] ?
Ce que tu écris c'est fauxF1 sur rnd()(6 * rnd) + 1pur ton cas upperbound=6 et lowerbound=1La fonction Rnd renvoie une valeur inférieure à 1 mais supérieure ou égale à zéro.
..
Pour générer des entiers aléatoires dans une plage donnée, utilisez la formule ci-dessous :
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
tu auras donctu auras des entiers compris entre 1 et 6int(6*rnd()+1)
maintenant si tu veux des décimales
Code : Sélectionner tout - Visualiser dans une fenêtre à part Int(6000 * Rnd() + 1) / 1000
merci oui effectivement ton raisonnement me parait logique![]()
Partager