0
votes

Générer des problèmes de division aléatoire dans Python

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.

avec addition, soustraction et multiplication, je pourrais simplement faire des temps [nombre aléatoires] ou plus ou soustraire [nombre aléatoire].

Ce n'est pas si facile si je veux faire des problèmes de division. Quelqu'un peut-il aider? Merci d'avance


3 commentaires

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 et b ≠ 0 puis a ÷ b = c . Il suffit donc de générer des entiers aléatoires B ≠ 0 et c , calculez A et que vous avez votre problème de division.


6 Réponses :


1
votes

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).


2 commentaires

il peut générer aussi un reste


Contrainte: Les deux facteurs doivent être non nuls.



-1
votes

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]


1 commentaires

Les astérisques sont utilisés pour l'italique. Vous pouvez les échapper pour l'éviter: \ *



2
votes

x / y = z

y * z = x

génère des y and z comme entiers, puis calculez x.


0 commentaires

-1
votes

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


0 commentaires

2
votes

1) Prenez tout diviseur randomisé non-zéro (X). // dire 5

2) Prenez tout dividende temporaire randomisé (D). // dire 24

3) calculer r = d% x; // => 4

4) renvoie le dividende sous forme (D -X) // retour 20

Maintenant, votre dividende sera toujours parfaitement divisible par le diviseur.


0 commentaires

0
votes

Je pense que @vira a la bonne idée. Si vous souhaitez générer A et B tel que a = b * q + r avec r = 0 , Le bon moyen de le faire est:

  1. générer b aléatoire
  2. générer q aléatoire
  3. Compute a = b * q
  4. Demandez à calculer la division: A divisé par B . La réponse est q .

0 commentaires