Comment fonctionne le modulo ?
En arithmétique, on sait par définition que le modulo représente le reste de la division d'un chiffre par un autre. En programmation, on en utilise de temps à autres et force est d'admettre que le concept n'est pas toujours clair par rapport au résultat attendu.
On aurait tendance à penser à tord que le reste de la division dans 7 mod 3 représente la partie décimale du résultat : 7 / 3 = 2,3333 (périodique)
Donc :
0,3333 ?
3333 ?
3 ?
Alors qu'en réalité, si on entre 7 mod 3 sur une calculatrice, le résultat sera 1. Pourquoi ?
Dans la division 7 / 3 = 2,3333 :
7 est le numérateur
3 est le dénominateur, le diviseur
2,3333 est le quotient
Autrement dit, ça prend 2,3333 fois le dénominateur pour obtenir le numérateur du départ. Donc 2 fois le dénominateur en totalité plus le tiers du dénominateur. Ce qui nous intéresse ici, c'est de savoir le reste nécessaire à combler la différence et non la partie décimale.
On conserve la partie entière du quotient : 2,3333 devient 2
On le multiplie par le dénominateur 2 * 3 = 6
On soustrait ce résultat du numérateur : 7 - 6 = 1
On obtient un modulo de 1
C'est pourquoi quand on cherche le modulo de 7 mod 3, le nombre 3 entre 2 fois en totalité dans 7 et il manque 1 pour combler le reste.