Comprendre L'Opérateur Du Module %

je comprends l'opérateur du module en termes de l'expression suivante:

7 % 5

Ce serait de retour 2 en raison du fait que le 5 va dans 7 une fois et donne alors le 2 qui reste, cependant, à ma confusion vient quand vous inversez cette déclaration à lire:

5 % 7

cela me donne la valeur de 5 qui me confond légèrement. Bien que le total de 7 ne va pas dans 5, une partie de celui-ci fait pourquoi il n'y a pas de reste ou un reste de positif ou négatif 2?

<!-Si elle calcule la valeur de 5 en se basant sur le fait que 7 ne va pas dans 5 du tout, pourquoi le reste n'est-il pas 7 au lieu de 5?

j'ai l'impression qu'il y a quelque chose que je manque ici dans ma compréhension de l'opérateur du module.

25
demandé sur Peter Featherstone 2013-07-08 14:45:20

9 réponses

(Cette explication est seulement pour les nombres positifs, car il dépend de la langue autrement)

Définition

Module est le reste de la division euclidienne d'un nombre par un autre. % s'appelle le modulo.

Par exemple, 9 divisé par 4 égale 2 mais il reste 1. Ici,9 / 4 = 2 et 9 % 4 = 1.

Euclidean Division

dans votre exemple: 5 divisé par 7 donne 0 mais il reste 5 (5 % 7 == 5).

Calcul

l'opération modulo peut être calculée en utilisant cette équation:

a % b = a - floor(a / b) * b
  • floor(a / b) représente le nombre de fois que vous pouvez diviser a par b
  • floor(a / b) * b est le montant qui a été partagé avec succès entièrement
  • le total (a) moins ce qui a été partagé est égal au reste de la division

appliqué au dernier exemple, cela donne:

5 % 7 = 5 - floor(5 / 7) * 7 = 5

Arithmétique Modulaire

cela dit, ton intuition était qu'il pourrait être -2 et non 5. En fait, en arithmétique modulaire,-2 = 5 (mod 7) parce qu'il existe k dans Z tels que 7k - 2 = 5.

vous n'avez peut-être pas appris l'arithmétique modulaire, mais vous avez probablement utilisé des angles et savez que -90° est la même chose que 270° parce que c'est modulo 360. C'est pareil, c'est enveloppant! Alors faites un cercle, et dites que le périmètre est de 7. Ensuite, tu lis où est le 5. Et si vous essayez avec 10, il devrait être à 3 car 10 % 7 est 3.

45
répondu Maxime Chéramy 2018-06-09 11:36:25

Comme d'autres l'ont souligné le module est basé sur le reste du système.

je pense qu'une façon plus facile de penser au module est ce qui reste après qu'un dividende (nombre à diviser) a été entièrement divisé par un diviseur. Donc si nous pensons à environ 5% 7, quand vous divisez 5 par 7, 7 peut aller en 5 seulement 0 fois et quand vous soustrayez 0(7 * 0) de 5 (tout comme nous avons appris à l'école primaire), alors le reste serait 5 ( Le mod). Voir l'illustration ci-dessous.

   0
  ______
7) 5    
__-0____
   5

Avec la même logique, -5 mod 7 sera -5 ( seulement 0 7s peut aller dans -5 et -5-0*7 = -5). Avec le même jeton -5 mod -7 sera également -5. Quelques cas intéressants:

5 mod (-3) = 2 c'est à dire 5 - (-3*-1)

(-5) mod (-3) = -2 c'est à dire -5 - (-3*1) = -5+3

5
répondu Dean Sha 2017-07-11 18:36:31

le module est le système des restes.

Donc 7 % 5 = 2.

5 % 7 = 5

3 % 7 = 3

2 % 7 = 2

1 % 7 = 1

Lorsqu'il est utilisé à l'intérieur d'une fonction pour déterminer l'index de tableau. Est-il sécuritaire de la programmation ? C'est une autre question. Je suppose que.

3
répondu nammalvar 2.0 2016-03-06 11:00:27

Étape 1: 5/7 = 0.71

Étape 2: Prendre le côté gauche de la décimale , donc nous prenons 0 de 0.71 et multiplions par 7 0 * 7 = 0;

Etape # : 5-0 = 5 ; Par Conséquent , 5/7 =5

2
répondu Yongama 2016-12-24 08:22:59

L'opérateur de module vous donne le résultat en 'système de résidus réduits'. Par exemple pour mod 5 il y a 5 nombres entiers comptés: 0,1,2,3,4. En fait 19=12=5=-2=-9 (mod 7)--2-->. La principale différence est que la réponse est donnée par les langages de programmation par "système de résidus réduits".

0
répondu GokcenG 2013-07-08 10:55:15

Une nouvelle façon de découvrir le reste est donnée ci-dessous

Statement: le reste est toujours constant

ex : 26 divided by 7 gives R : 5 

on peut le découvrir facilement en trouvant le nombre qui divise complètement 26 qui est plus proche de la diviseur et prendre la différence des deux

13 is the next number after 7 that completely divides 26 because after 7 comes 8, 9 ,

10, 11, 12 where none of them divides 26 completely and give remainder 0.
So 13 is the closest number to 7 which divides to give Remainder 0.
now take the difference (13 ~ 7) = 5 which is the Remainder .

note : for this to work divisor should be reduced to its simplest form ex: if 14 
is the divisor ..7 has to be chosen to find the closest number dividing the dividend.
0
répondu Pramod Bhat 2013-11-20 16:38:02

posons le de cette façon:

effectivement Module opérateur fait la même division mais il ne se soucie pas de la réponse , il se soucie de rappel par exemple si vous divisez 7 à 5 ,

donc , me permet de vous faire passer à travers un exemple simple:

pensez 5 est un bloc, alors par exemple nous allons avoir 3 blocs en 15 (DE Rien) , mais lorsque que loginc vient à ce genre de nombres {1,3,5,7,9,11,...} , c'est là où le Le module sort , donc prenez cette logique que j'ai dit avant et appliquez-la pour 7 , donc la réponse va être que nous avons 1 bloc de 5 en 7 => avec 2 rappels dans notre main! c'est le module!!!

donc, prenez la logique que j'ai dit , combien de 7 blocs avons-nous en 5 ???? 0

ainsi le module retourne 0...

c'est tout ...

0
répondu a_m_dev 2018-03-07 14:34:47

c'est juste au sujet des restes. Permettez-moi de vous montrer comment

10 % 5=0
9 % 5=4 (because the remainder of 9 when divided by 5 is 4)
8 % 5=3
7 % 5=2
6 % 5=1

5 % 5=0 (because it is fully divisible by 5)

maintenant nous devrions nous rappeler une chose, mod signifie reste donc

4 % 5=4

mais pourquoi 4? parce que 5 X 0 = 0 so 0 est le plus proche multiple qui est inférieur à 4 donc 4-0=4

0
répondu Siddarth Nyati 2018-08-05 19:32:49

Quelques réponses ici sont compliquées pour moi de comprendre. Je vais essayer d'ajouter une réponse de plus dans une tentative pour simplifier la façon de regarder ceci:

le processus consiste essentiellement à poser deux questions:

E. G. 7% 5

1-quel nombre multiplier 5 pour obtenir 7?

essayons:

0 donc, 0 x 5 = 0

pourtant, nous sommes à court. Nous avons à niveau jusqu'à 7.

1 donc, 1 x 5 = 5

Nous n'avons pas 7 encore, laissez-vous tenter par un nombre plus élevé.

2 donc, 2 x 5 = 10

Oh non, nous avons dépassé 7. Donc 2 n'est pas correct, revenons-en une seule étape (où nous avons utilisé 1) et le résultat était 5.

2-Combien faut-il Ajouter à 5 (Le nombre que nous venons d'obtenir de l'étape 1) pour atteindre la valeur du nombre sur la gauche