Pourquoi 2 mod 4 = 2?

150

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

Pourquoi 2 mod 4 = 2?

NewToThis
la source
45
Parce que 2 = 0 * 4 + 2.
p4bl0
1
En x / y, les résultats sont constitués d'une partie entière et d'une partie fractionnaire. Si vous multipliez la partie fractionnaire par le diviseur, vous obtenez le reste. Et x = partie entière y + reste (c'est-à-dire partie fraction y). Dans ce cas, la partie
entière
76
heureux que vous ayez eu le courage de poser cette question.
paver
le modulo est loin d'être égal à diviser deux nombres.
holex

Réponses:

151

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

Jarsen
la source
95

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 du mot 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
Eric
la source
18

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

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)
Dan McClain
la source
3
Et explication "verbeuse": 2 = 4 · 0 + 2 ;-)
Michael Krelin - hacker
13

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

Disons que vous avez 1 banane et un groupe de 6 personnes, vous exprimeriez ceci: 1 mod 6/ 1 % 6/ 1 modulo 6.

Vous avez besoin de 6 bananes pour chaque personne du groupe pour être bien nourri et heureux.

Donc, si vous avez ensuite 1 banane et que vous avez besoin de la partager avec 6 personnes, mais que vous ne pouvez la partager que si vous avez 1 banane pour chaque membre du groupe, soit 6 personnes, alors vous aurez 1 banane (le reste, non partagé avec personne dans 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 dans un groupe de 6 personnes, et le reste est de 0 ou plus de bananes lorsque vous avez partagé les 6 bananes sur 6 personnes.

Maintenant, pour 7 bananes et 6 personnes en 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 6ou 12 bananes partagées sur 6 personnes, chacune aura deux bananes, et le reste vaut alors 0.

user3408091
la source
8

2/4 = 0 avec un reste de 2

Joe Doyle
la source
8

J'étais aussi confus à ce sujet, il y a seulement quelques minutes. Ensuite, j'ai fait la division à la main sur un morceau de papier et cela avait du sens:

  • 4 passe en 2 zéro fois.
  • 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 décimale et continuer, c'est pourquoi cela peut être contre-intuitif au début.

skillit zimberg
la source
7

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 A 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 ayez des objets A (que vous ne pouvez pas couper). Et vous voulez distribuer la même quantité de ces objets aux personnes B. Tant que vous avez plus de B objets, vous donnez à chacun d'eux 1 et répétez. Lorsqu'il vous reste moins de B objets, vous arrêtez et conservez les objets restants. Le nombre de fois que vous avez répété l'opération, appelons ce nombre C, est le quotient. Le nombre d'objets que vous gardez à la fin, appelons-le D, est le reste.

Si vous avez 2 objets et 4 personnes. Vous avez déjà moins de 4 objets. Ainsi, chaque personne reçoit 0 objet et vous en gardez 2.

C'est pourquoi 2 modulo 4 est 2.

p4bl0
la source
5

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)
Cardenas
la source
4

mod signifie l'alésoir lorsqu'il est divisé par. Donc 2 divisé par 4 est 0 avec 2 restants. Donc 2 mod 4 est 2.

DaveJohnston
la source
4

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

Donc, disons que vous avez un pixel sur un écran à la position 90 où l'écran fait 100 pixels de large et ajouter 20, il s'enroulera en position 10. Pourquoi ... parce que 90 + 20 = 110 donc 110% 100 = 10.

Pour que je le comprenne, je considère que le modulo est la représentation entière du nombre fractionnaire. De plus, si vous faites l'expression à l'envers et traitez le reste comme un nombre fractionnaire, puis ajouté au diviseur, cela vous donnera votre réponse originale.

Exemples:

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

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

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

Inversé 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
Kris Kizlyk
la source
2

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

jocopa3
la source
1

Je pense que vous êtes confus sur la façon dont l'équation modulo est lue.

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

Lorsqu'une équation modulo est écrite, comme si 2 % 4nous divisons 2 by 4(pensez à 2 sur 4) et renvoyez le reste.

Kevin Bowersox
la source
1

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

Aamir kamaal
la source
1

C'est l'algorithme Euclid.

par exemple

a mod b = k * b + c => a 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

donc ta réponse est

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

Mergim Rama
la source
1

Pour:

2 mod 4

Nous pouvons utiliser cette petite formule que j'ai trouvée après avoir réfléchi un peu, peut-être qu'elle est déjà définie quelque part que je ne sais pas mais fonctionne pour moi, et 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 tient dans A

2 mod 4 serait:

0 * 4 - 2 = |C|

C = |-2| => 2

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

Daniel Sibaja
la source
1

L'opération Mod 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
Raju
la source
1

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

A- Combien de fois yentre xsans reste? Pour 2% 4 c'est 0.

B- Combien avez-vous besoin d'ajouter pour en revenir x? Pour passer de 0 à 2, vous aurez besoin de 2-0, soit 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 xpar y, pour revenir x?

Par integer-ish, on entend que seuls les nombres entiers et non les fractions sont intéressants.

Un reste de division fractionnaire (par exemple .283849) n'est pas intéressant dans modulo car modulo ne traite que des nombres entiers.

elig
la source
0

Pour une façon visuelle d'y penser, imaginez un cadran d'horloge qui, dans votre exemple particulier, ne va qu'à 4 au lieu de 12. Si vous commencez à 4 sur l'horloge (ce qui revient à commencer à zéro) et faites le tour dans le sens des aiguilles d'une montre pour 2 "heures", vous atterrissez sur 2, tout comme le contourner dans le sens des aiguilles d'une montre pendant 6 "heures" vous atterrirait également sur 2 (6 mod 4 == 2 tout comme 2 mod 4 == 2).

Anon
la source
6
C'est en fait assez déroutant.
Joe Phillips
@ do3boy: l'idée du cadran d'horloge est une méthode très simple et facile pour décrire exactement le fait du modulo. sauf qu'il aurait été plus facile d'utiliser le format 24h pour l'expliquer au lieu de modifier le nombre de postes disponibles.
Atmocreations
0

Cela pourrait être le bon moment pour mentionner la fonction modr (). Il renvoie à la fois la totalité et les parties restantes 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")
utilisateur10637953
la source