J'ai besoin de générer des problèmes de division aléatoires pour un jeu éducatif que je construis. Générer des problèmes d'addition, de soustraction et de multiplication aléatoires n'est pas trop difficile. Mais je veux que mes problèmes de division n'ont pas de restes. p>
avec addition, soustraction et multiplication, je pourrais simplement faire des temps [nombre aléatoires] ou plus ou soustraire [nombre aléatoire]. p>
Ce n'est pas si facile si je veux faire des problèmes de division. Quelqu'un peut-il aider? Merci d'avance p>
6 Réponses :
Vous pouvez simplement générer le diviseur et le quotient au hasard, puis calculer le dividende. Notez que le diviseur doit être non nul (grâce au rappel de @ O11C). P>
il peut générer aussi un reste
Contrainte: Les deux facteurs doivent être non nuls.
Vous pouvez générer un numéro à diviser en [Numéro aléatoire1] x [Numéro aléatoire2] . Le problème sera alors [Nombre aléatoire1] x [Numéro aléatoire2] Diviser par [Nombre aléatoire1] P>
Les astérisques sont utilisés pour l'italique. Vous pouvez les échapper pour l'éviter: \ * code>
x / y = z p>
y * z = x p>
génère des y and z comme entiers, puis calculez x. p>
GZ0 a offert une excellente solution, qui est probablement la plus élégante. Comme alternative, vous pouvez utiliser l'opérateur modulo,%.
if num1 % num2 == 0:
return num1, num2
1) Prenez tout diviseur randomisé non-zéro (X). // dire 5 p>
2) Prenez tout dividende temporaire randomisé (D). // dire 24 p>
3) calculer r = d% x; // => 4 p>
4) renvoie le dividende sous forme (D -X) // retour 20 p>
Maintenant, votre dividende sera toujours parfaitement divisible par le diviseur. P>
Je pense que @vira a la bonne idée.
Si vous souhaitez générer A code> et B code> tel que a = b * q + r code> avec r = 0 code>, Le bon moyen de le faire est: p>
b code> aléatoire li>
q code> aléatoire li>
a = b * q code> li>
A code> divisé par B code>. La réponse est q code>. Li>
ol>
Un exemple de ce que vous essayez de réaliser pourrait rendre votre problème un peu plus clair.
Je ne pense pas que ce soit une question "Stackoverflow". Cependant, vous ne pouvez pas les générer de la même manière que vous faites vos questions de multiplication? Changez simplement les valeurs que vous avez définies pour votre question. Cela fonctionne également mieux si vous souhaitez limiter les facteurs à une certaine gamme.
Si
a = b * c code> etb ≠ 0 code> puisa ÷ b = c code>. Il suffit donc de générer des entiers aléatoiresB ≠ 0 code> etc code>, calculezA code> et que vous avez votre problème de division.