Comment fonctionne la division Modulus

Je ne comprends pas vraiment comment fonctionne la division du module. Je calculais 27 % 16 et je me suis retrouvé avec 11 et je ne comprends pas pourquoi.

Je n’arrive pas à trouver une explication dans les termes du profane en ligne. Quelqu’un peut-il élaborer sur un très haut niveau quant à ce qui se passe ici?

Le résultat d’une division modulo est le rest d’une division entière des nombres donnés.

Cela signifie:

 27 / 16 = 1, remainder 11 => 27 mod 16 = 11 

Autres exemples:

 30 / 3 = 10, remainder 0 => 30 mod 3 = 0 35 / 3 = 11, remainder 2 => 35 mod 3 = 2 

La plupart des explications manquent une étape importante, remplissons le vide en utilisant un autre exemple.

Compte tenu de ce qui suit:

 Dividend: 16 Divisor: 6 

La fonction de module ressemble à ceci:

 16 % 6 = 4 

Déterminons pourquoi c’est.

Tout d’abord, effectuez une division entière , qui est similaire à la division normale, sauf que tout nombre fractionnaire (alias rest) est ignoré:

 16 / 6 = 2 

Ensuite, multipliez le résultat de la division ci-dessus ( 2 ) avec notre diviseur ( 6 ):

 2 * 6 = 12 

Enfin, soustrayez le résultat de la multiplication ci-dessus ( 12 ) de notre dividende ( 16 ):

 16 - 12 = 4 

Le résultat de cette soustraction, 4 , le rest , est le même résultat de notre module ci-dessus!

Peut-être que l’exemple avec une horloge pourrait vous aider à comprendre le modulo.

Une utilisation familière de l’arithmétique modulaire est son utilisation dans l’horloge de 12 heures, dans laquelle le jour est divisé en deux périodes de 12 heures.

Disons que nous avons actuellement cette heure: 15:00
Mais vous pourriez aussi dire qu’il est 15 heures

C’est exactement ce que modulo fait:

 15 / 12 = 1, remainder 3 

Vous trouvez cet exemple mieux expliqué sur wikipedia: Wikipedia Article Modulo

La formule simple pour calculer le module est: –

 [Dividend-{(Dividend/Divisor)*Divisor}] 

Donc, 27% 16: –

27- {(27/16) * 16}

27- {1 * 16}

Réponse = 11

Note :

Tous les calculs sont avec des entiers. Dans le cas d’un quotient décimal, la partie après la décimale doit être ignorée / tronquée.

ex: 27/16 = 1,6875 doit être pris comme juste 1 dans la formule mentionnée ci-dessus. 0.6875 est ignoré.

Les compilateurs de langages informatiques traitent également un nombre entier décimal avec la partie décimale

L’opérateur de module prend un relevé de division et retourne ce qui rest de ce calcul, les données “restantes”, pour ainsi dire, telles que 13/5 = 2. Ce qui signifie qu’il en rest 3 ou qu’il rest de ce calcul. Pourquoi? parce que 2 * 5 = 10. Ainsi, 13 – 10 = 3.

L’opérateur de module effectue tout ce calcul pour vous, 13% 5 = 3.

la division de module est simplement ceci: diviser deux nombres et renvoyer le rest seulement

27/16 = 1 avec 11 restants, donc 27% 16 = 11

idem 43/16 = 2 avec 11 restants donc 43% 16 = 11 aussi

Très simple: a % b est défini comme le rest de la division de a par b .

Voir l’ article de Wikipedia pour plus d’exemples.

J’espère que ces étapes simples aideront:

 20 % 3 = 2 
  1. 20 / 3 = 6 ; n’incluez pas le .6667 – ignorez-le simplement
  2. 3 * 6 = 18
  3. 20 - 18 = 2 , qui est le rest du modulo

La division de module vous donne le rest d’une division, plutôt que le quotient.

Disons que vous avez 17 mod 6.

quel total de 6 vous obtiendrez le plus proche de 17, ce sera 12 car si vous dépassez 12 vous aurez 18 ce qui est plus que la question de 17 mod 6. Vous prendrez alors 12 et moins de 17 qui vous donneront votre réponse, dans ce cas 5.

17 mod 6 = 5

La division du module est assez simple. Il utilise le rest au lieu du quotient.

  1.0833... <-- Quotient __ 12|13 12 1 <-- Remainder 1.00 <-- Remainder can be used to find decimal values .96 .040 .036 .0040 <-- remainder of 4 starts repeating here, so the quotient is 1.083333... 

13/12 = 1R1, ergo 13% 12 = 1.


Il est utile de considérer le module comme un "cycle".

En d'autres termes, pour l'expression n % 12 , le résultat sera toujours <12.

Cela signifie que la séquence pour l'ensemble 0..100 pour n % 12 est la suivante:

 {0,1,2,3,4,5,6,7,8,9,10,11,0,1,2,3,4,5,6,7,8,9,10,11,0,[...],4} 

Dans cette optique, le module, ainsi que ses utilisations, devient beaucoup plus clair.

Plus facile lorsque votre numéro après la décimale (0.xxx) est court. Ensuite, il vous suffit de multiplier ce nombre par le nombre après la division.

Ex: 32 % 12 = 8

Vous faites 32/12=2.666666667 Ensuite, vous jetez le 2 , et concentrez-vous sur le 0.666666667 0.666666667*12=8 <- C'est votre réponse.

(encore une fois, seulement facile quand le nombre après la décimale est court)

Je voudrais append une chose:

il est facile de calculer modulo lorsque le dividende est supérieur / supérieur au diviseur

dividende = 5 diviseur = 3

5% 3 = 2

 3)5(1 3 ----- 2 

mais si le diviseur est plus petit que le dividende

dividende = 3 diviseur = 5

3% 5 = 3 ?? Comment

En effet, puisque 5 ne peut pas diviser 3 directement, modulo sera ce que le dividende est

C’est simple, l’opérateur de module (%) renvoie le rest après la division entière. Prenons l’exemple de votre question. Comment 27% 16 = 11? Lorsque vous divisez simplement 27 par 16, c’est-à-dire (27/16), vous obtenez le rest comme 11, et c’est pourquoi votre réponse est 11.

Écrivez une table commençant par 0.

 {0,1,2,3,4} 

Continuez la table en lignes.

 {0,1,2,3,4} {5,6,7,8,9} {10,11,12,13,14} 

Tout dans la colonne un est un multiple de 5. Tout dans la colonne 2 est un multiple de 5 avec 1 rest. Maintenant, la partie abstraite: Vous pouvez écrire cela (1) comme 1/5 ou comme une expansion décimale. L’opérateur de module ne renvoie que la colonne, ou d’une autre manière, il retourne le rest sur une longue division. Vous avez affaire à modulo (5). Module différent, table différente. Pensez à une table de hachage.

Lorsque nous divisons deux nombres entiers, nous aurons une équation qui ressemble à ceci:

A / B = Q rest R

A est le dividende; B est le diviseur; Q est le quotient et R est le rest

Parfois, nous ne sums intéressés que par le rest lorsque nous divisons A par B. Dans ces cas, il y a un opérateur appelé opérateur modulo (abrégé en mod).

Exemples

 16/5= 3 Remainder 1 ie 16 Mod 5 is 1. 0/5= 0 Remainder 0 ie 0 Mod 5 is 0. -14/5= 3 Remainder 1 ie -14 Mod 5 is 1. 

Voir l’ article de l’Académie Khan pour plus d’informations.

En informatique, la table de hachage utilise l’opérateur Mod pour stocker l’élément où A sera la valeur après le hachage, B sera la taille de la table et R le nombre d’emplacements ou de clés où l’élément est inséré.

Voir Comment fonctionne une table de hachage pour plus d’informations

C’était la meilleure approche pour comprendre l’opérateur de module. Je vais juste vous expliquer à travers des exemples.

 16 % 3 

Lorsque vous divisez ces deux nombres, le résultat est le résultat. C’est comme ça que je le fais.

 16 % 3 = 3 + 3 = 6; 6 + 3 = 9; 9 + 3 = 12; 12 + 3 = 15 

Donc ce qui rest à 16 est 1

 16 % 3 = 1 

Voici un autre exemple: 16 % 7 = 7 + 7 = 14 ce qui rest à 16? Est 2 16 % 7 = 2

Un de plus: 24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24 24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24 24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24 . Donc le rest est zéro, 24 % 6 = 0