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.
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.
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.
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.
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.
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)
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
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.
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
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).
@ 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")
2 = 0 * 4 + 2
.Réponses:
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.
la source
Modulo est le reste, pas la division.
Le signe
%
est souvent utilisé pour l'opérateur modulo, au lieu du motmod
.Pour
x % 4
, vous obtenez le tableau suivant (pour 1-10)la source
Modulo (mod,%) est l'opérateur Reste.
la source
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 6
ou 12 bananes partagées sur 6 personnes, chacune aura deux bananes, et le reste vaut alors 0.la source
2/4 = 0 avec un reste de 2
la source
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:
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.
la source
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:
la source
L'opérateur modulo évalue le reste de la division des deux opérandes entiers. Voici quelques exemples:
la source
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.
la source
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:
Inversé conçu pour:
la source
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.
la source
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/4
nous divisons 2 par 4.Lorsqu'une équation modulo est écrite, comme si
2 % 4
nous divisons2 by 4
(pensez à 2 sur 4) et renvoyez le reste.la source
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.
la source
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
la source
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éponseK * B - A = |C|
où K est le nombre de fois que B tient dans A2 mod 4
serait:0 * 4 - 2 = |C|
C = |-2| => 2
J'espère que ça marche pour toi :)
la source
L'opération Mod fonctionne avec rappel.
C'est ce qu'on appelle l'arithmétique modulaire.
la source
Pour répondre à un modulo
x % y
, vous posez deux questions:A- Combien de fois
y
entrex
sans 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
x
pary
, pour revenirx
?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.
la source
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).
la source
Cela pourrait être le bon moment pour mentionner la fonction modr (). Il renvoie à la fois la totalité et les parties restantes d'une division.
la source