Le Modulo : Définition et Applications
L'opération modulo (notée mod ou %) calcule le reste de la division euclidienne.
C'est une opération fondamentale en arithmétique modulaire.
📐 Définition
a mod n = r
où r est le reste de la division de a par n
0 ≤ r < n
Relation : a = q × n + r
• a = dividende
• n = diviseur (ou module)
• q = quotient
• r = reste (résultat du modulo)
🔢 Exemples
| Opération |
Calcul |
Résultat |
| 17 mod 5 |
17 = 3 × 5 + 2 |
2 |
| 25 mod 7 |
25 = 3 × 7 + 4 |
4 |
| 100 mod 10 |
100 = 10 × 10 + 0 |
0 |
| 13 mod 13 |
13 = 1 × 13 + 0 |
0 |
| 7 mod 12 |
7 = 0 × 12 + 7 |
7 |
⚡ Propriétés
| Propriété |
Formule |
| Addition |
(a + b) mod n = [(a mod n) + (b mod n)] mod n |
| Soustraction |
(a - b) mod n = [(a mod n) - (b mod n)] mod n |
| Multiplication |
(a × b) mod n = [(a mod n) × (b mod n)] mod n |
| Puissance |
a^k mod n peut être calculé efficacement |
| Distributivité |
a mod n toujours entre 0 et n-1 |
💡 Applications Pratiques
- Cryptographie : RSA, chiffrement à clé publique
- Programmation : Structures circulaires, hash tables
- Horloges : Arithmétique des heures (24 mod 12 = 0)
- Calendriers : Jour de la semaine, années bissextiles
- Checksum : Codes ISBN, numéros de carte bancaire
- Générateurs aléatoires : PRNG (pseudo-random)
- Théorie des nombres : Congruences, théorème de Fermat
🔐 Modulo en Cryptographie
Le chiffrement RSA repose sur l'arithmétique modulaire. Le principe :
Chiffrement : c = m^e mod n
Déchiffrement : m = c^d mod n
où :
• m = message
• c = message chiffré
• e = exposant public
• d = exposant privé
• n = module (produit de deux grands nombres premiers)
🕐 Modulo et Horloges
Horloge 12 heures :
15h → 15 mod 12 = 3h (après-midi)
20h → 20 mod 12 = 8h (soir)
Jours de la semaine :
Jour 10 → 10 mod 7 = 3 (mercredi si lundi = 0)
Jour 100 → 100 mod 7 = 2 (mardi)
💻 Modulo en Programmation
| Langage |
Opérateur |
Exemple |
| Python |
% |
17 % 5 → 2 |
| JavaScript |
% |
17 % 5 → 2 |
| Java |
% |
17 % 5 → 2 |
| C/C++ |
% |
17 % 5 → 2 |
| SQL |
MOD() |
MOD(17, 5) → 2 |
🎯 Cas d'Usage Courants
| Usage |
Exemple |
| Nombre pair/impair |
n mod 2 = 0 → pair, = 1 → impair |
| Divisibilité |
a mod n = 0 ⟺ n divise a |
| Dernier chiffre |
n mod 10 = dernier chiffre |
| Tableau circulaire |
index mod taille |
| Hash function |
hash(key) mod table_size |
⚠️ Nombres Négatifs
Attention : le comportement du modulo avec des nombres négatifs varie selon les langages.
Convention mathématique :
-17 mod 5 = 3 (résultat toujours positif)
Certains langages (C, Java) :
-17 % 5 = -2 (même signe que le dividende)
Python, Ruby :
-17 % 5 = 3 (même signe que le diviseur)