web-dev-qa-db-fra.com

Pourquoi 2 mod 4 = 2?

Je suis gêné de poser une question aussi simple. Mon mandat ne commence pas avant deux semaines, je ne peux donc pas demander à un professeur, et le suspense me tuerait.

Pourquoi 2 mod 4 = 2?

142
NewToThis

Mod signifie simplement que vous prenez le reste après avoir effectué la division. Puisque 4 va dans 2 fois zéro, vous vous retrouvez avec un reste de 2.

144
Jarsen

Modulo est le reste, pas la division.

2 / 4 = 0R2
2 % 4 = 2

Le signe % est souvent utilisé pour l'opérateur modulo au lieu de Word mod.

Pour x % 4, vous obtenez le tableau suivant (pour 1-10)

 x x%4
------
 1  1
 2  2
 3  3
 4  0
 5  1
 6  2
 7  3
 8  0
 9  1
10  2
94
Eric

Modulo (mod,%) est l'opérateur Remainder. 

2%2 = 0 (2/2 = 1 remainder 0)
1%2 = 1 (1/2 = 0 remainder 1)
4%2 = 0 (4/2 = 2 remainder 0)
5%2 = 1 (5/2 = 2 remainder 1)
18
Dan McClain

Beaucoup plus facile si vous utilisez des bananes et un groupe de personnes. 

Supposons que vous avez 1 banane et un groupe de 6 personnes, vous exprimerez ceci: 1 mod 6/1 % 6/1 modulo 6

Il faut 6 bananes pour que chaque personne du groupe soit bien nourrie et heureuse. 

Donc, si vous avez 1 banane et que vous devez la partager avec 6 personnes, mais vous ne pouvez partager que si vous avez 1 banane pour chaque membre du groupe, soit 6 personnes, puis vous aurez 1 banane (le reste, pas partagé sur groupe), il en va de même pour 2 bananes. Ensuite, vous aurez 2 bananes comme reste (rien n'est partagé). 

Mais quand vous obtenez 6 bananes, alors vous devriez être heureux, car alors il y a 1 banane pour chaque membre du groupe de 6 personnes, et le reste est 0 ou pas de bananes restantes lorsque vous avez partagé toutes les 6 bananes sur 6 personnes. 

Maintenant, pour 7 bananes et 6 personnes du groupe, vous aurez alors 7 mod 6 = 1, ceci parce que vous avez donné à 6 personnes 1 banane chacune, et 1 banane est le reste. 

Pour 12 mod 6 ou 12 bananes partagées sur 6 personnes, chacune aura deux bananes, le reste étant alors 0.

9
user3408091

2/4 = 0 avec un reste de 2

8
Joe Doyle

J'étais confus à ce sujet également il y a quelques minutes à peine. Ensuite, j'ai fait la division main longue sur un morceau de papier et c'était logique:

  • 4 passe en 2 fois zéro. 
  • 4 fois 0 est 0. 
  • Vous mettez ce zéro sous le 2 et soustrayez ce qui laisse 2. 

C'est aussi loin que l'ordinateur va prendre ce problème. L'ordinateur s'arrête là et renvoie le 2, ce qui a du sens puisque c'est ce que "%" (mod) demande. 

Nous avons été formés pour mettre la virgule décimale et continuer, raison pour laquelle cela peut être contre-intuitif au début.

7
skillit zimberg

Quelqu'un m'a contacté et m'a demandé d'expliquer plus en détail ma réponse dans le commentaire de la question. Voici donc ce que j'ai répondu à cette personne au cas où cela pourrait aider quelqu'un d'autre:

L'opération modulo vous donne le reste de la disivion euclidienne (qui ne fonctionne qu'avec des nombres entiers, pas des nombres réels). Si vous avez un tel que A = B * C + D (avec D <B), alors le quotient de la division euclidienne de A par B est C, et le reste est D. Si vous divisez 2 par 4, le quotient est 0 et le reste est 2.

Supposons que vous avez un objet (que vous ne pouvez pas couper). Et vous voulez distribuer la même quantité de ces objets à des personnes B. Aussi longtemps que vous avez plus que des objets B, vous donnez chacun 1, et répétez . Quand il vous reste moins de B objets, vous arrêtez et conservez le reste objets. Le nombre de fois que vous avez répété l'opération, prenons appeler ce nombre C, est le quotient. Le nombre d'objets que vous gardez à la fin, appelons cela D, est le reste.

Si vous avez 2 objets et 4 personnes. Vous avez déjà moins de 4 objets. Donc, chaque personne a 0 objet et vous en gardez 2.

C'est pourquoi 2 modulo 4 est 2.

7
p4bl0

L'opérateur modulo évalue le reste de la division des deux opérandes entiers. Voici quelques exemples:

23 % 10 evaluates to 3 (because 23/10 is 2 with a remainder of 3)
50 % 50 evaluates to 0 (50/50 is 1 with a remainder of 0)
9 % 100 evaluates to 9 (9/100 is 0 with a remainder of 9)
5
Cardenas

Modulo est le reste, exprimé en entier, d'une expression de division mathématique. 

Supposons donc que vous avez un pixel sur un écran à la position 90 où l’écran a une largeur de 100 pixels et que vous ajoutez 20, il sera renvoyé à la position 10. Pourquoi ... car 90 + 20 = 110 donc 110% 100 = 10.

Pour que je puisse le comprendre, je considère que le modulo est la représentation entière du nombre fractionnaire. De plus, si vous faites l’expression à l’arrière et que vous traitez le reste comme un nombre fractionnaire, puis que vous l’ajoutez au diviseur, il vous donnera votre réponse initiale.

Exemples:

    100
(A) ---  =  14 mod 2
     7

    123
(B) ---  =  8 mod 3
     15

     3
(C) ---  =  0 mod 3
     4

Reversed conçu pour:

                        2      14(7)    2       98    2     100
 (A) 14 mod 2  =  14 + ---  =  ----- + ---  =  --- + ---  = ---
                        7        7      7       7     7      7

                      3      8(15)    3      120    3      123
 (B) 8 mod 3  =  8 + ---  =  ----- + ---  =  --- + ---  =  ---
                      15       15     15      15    15      15

                      3       3
 (B) 0 mod 3  =  0 + ---  =  ---
                      4       4
4
Kris Kizlyk

mod signifie le reste quand divisé par. Donc, 2 divisé par 4 est 0 avec 2 restants. Donc 2 mod 4 est 2.

4
DaveJohnston

Je pense que vous êtes en train de confondre la lecture de l'équation modulo.

Lorsque nous écrivons une équation de division telle que 2/4, nous divisons 2 par 4.

Quand une équation modulo telle que 2 % 4 est écrite, nous divisons 2 by 4 (pensez 2 sur 4) et renvoyons le reste.

1
Kevin Bowersox

MOD est l'opérateur restant. C'est pourquoi 2 mod 4 donne 2 comme reste. 4 * 0 = 0 puis 2-0 = 2. Pour que ce soit plus clair, essayez de faire de même avec 6 mod 4 ou 8 mod 3.

1
Aamir kamaal

Le fonctionnement en mode fonctionne avec rappel.

C'est ce qu'on appelle l'arithmétique modulaire.

 a==b(mod m) 
 then m|(a-b)
 a-b=km 
 a=b+km
 So, 2=2+0*4
1
Raju

Lorsque vous divisez 2 par 4, vous obtenez 0 avec 2 restants ou restants. Modulo est juste le reste après avoir divisé le nombre.

1
jocopa3

Pour répondre à un modulo x % y, vous posez deux questions:

A- Combien de fois y est entré dans x sans reste? Pour 2% 4, c'est 0.

B- Combien avez-vous besoin d’ajouter pour revenir à x? Pour revenir de 0 à 2, vous aurez besoin de 2-0, c'est-à-dire 2.

Celles-ci peuvent être résumées en une question comme ceci: Combien devrez-vous ajouter au résultat entier de la division de x par y, pour revenir à x?

Par entier, on entend que seuls les nombres entiers et non les fractions sont d’intérêt.

Un reste de division fractionnaire (par exemple .283849) n’est pas d’intérêt modulo car modulo ne traite que des nombres entiers. 

1
elig

Pour: 

2 mod 4

Nous pouvons utiliser cette petite formule que j'ai créée après avoir réfléchi un peu. Peut-être est-il déjà défini quelque part que je ne connais pas mais qui fonctionne pour moi et que c'est vraiment utile.

A mod B = C où C est la réponse

K * B - A = |C| où K est le nombre de fois que B correspond à A

2 mod 4 serait:

0 * 4 - 2 = |C|

C = |-2| => 2

J'espère que ça marche pour toi :)

1
Daniel Sibaja

C'est l'algorithme d'Euclide.

par exemple

un mod b = k * b + c => un mod b = c, où k est un entier et c est la réponse

4 mod 2 = 2 * 2 + 0 => 4 mod 2 = 0

27 mod 5 = 5 * 5 + 2 => 27 mod 5 = 2

alors ta réponse est

2 mod 4 = 0 * 4 + 2 => 2 mod 4 = 2

1
Mergim Rama

Pour y réfléchir de façon visuelle, imaginez un cadran d'horloge qui, dans votre exemple particulier, ne passe qu'à 4 au lieu de 12. Si vous commencez à 4 heures (ce qui revient à zéro), faites-le tourner dans le sens des aiguilles 2 "heures", vous atterrissez sur 2, comme si vous le faisiez dans le sens des aiguilles d'une montre pendant 6 "heures", mais aussi sur 2 (6 mod 4 == 2 comme 2 mod 4 == 2).

0
Anon

Cela pourrait être un bon moment pour mentionner la fonction modr (). Il renvoie à la fois le tout et le reste d'une division.

print("\n 17 // 3 =",17//3," # Does the same thing as int(17/3)")
print(" 17 %  3 =",17%3," # Modulo division gives the remainder.")
whole, remain = divmod(17,3)
print(" divmod(17,3) returns ->",divmod(17,3),end="")
print(" because 3 goes into 17,",whole,"times with a remainder of",remain,end=".\n\n")
0
Science_1