Fonction modulo
Une fonction modulo divise deux nombres et renvoie le reste. Elle nécessite les mêmes valeurs d’entrée qu’une opération de division, mais renvoie la valeur « restante » au lieu du résultat de la division. Par exemple :
- 7 mod 3 = 1
- 8 mod 3 = 2
S’il n’y a pas de reste, le résultat est zéro.
- 9 mod 3 = 0
Dans les formules mathématiques, l’opérateur mod ou « modulo » est souvent représenté par un signe de pourcentage. Par exemple, 7 mod 3 peut s’écrire comme l’expression suivante :
- 7 % 3 = 1
En informatique, une fonction modulo peut s’écrire mod(x,y), ou de manière similaire, selon le langage de programmation. Par exemple :
- mod(7,3) = 1
La fonction ci-dessus divise la première valeur (le dividende) par la deuxième valeur (le diviseur) et renvoie le reste. Comme 7 ÷ 3 = 2r1, le résultat de mod(7,3) est 1.
Applications de la fonction modulo
La fonction modulo a plusieurs utilisations en programmation. Comme le résultat doit être inférieur au diviseur, elle peut limiter les résultats à une plage spécifique. Par exemple, mod(x,4) peut uniquement renvoyer 0, 1, 2 ou 3, si x est un entier. Elle est utile pour vérifier chaque valeur nième ou pour classer les résultats dans un nombre limité de « catégories ».
Dans la plupart des langages de programmation, 0 est évalué comme faux et les autres nombres comme vrais. Par conséquent, une fonction modulo peut fournir un résultat booléen — false si deux nombres sont divisibles sans reste et true s’ils ne le sont pas. Voici un exemple de fonction modulo dans une instruction if :
if (mod(x,5)) then { ... }
Si x n’est pas divisible sans reste par 5, le code de la clause then s’exécute. Si x est divisible par cinq — 5, 10, 15, 20, etc. — le code ne s’exécute pas.
NOTE: Les fonctions modulo utilisent souvent deux entiers comme arguments. Cependant, les nombres à virgule flottante sont également acceptables. Deux valeurs entières produisent toujours un entier, mais une ou plusieurs entrées fractionnaires peuvent produire un résultat fractionnaire. Par exemple, 8 % 2.5 = 0.5, puisque 8 ÷ 2.5 = 3r0.5.
Testez vos connaissances