Funzione Mod in MATLAB: calcolo del resto della divisione
A volte, durante un calcolo di divisione, il resto interessa più del quoziente intero. Esempio: dividendo 17 per 3, il resto 2 può essere più importante del quoziente 5. Tra le migliaia di funzioni integrate in MATLAB c'è il comando "mod", abbreviazione di "modulus". La funzione "mod" calcola direttamente il resto di una divisione.
Esempio Mod
Immagina che Giovanni abbia 17 mele e voglia dividerle il più equamente possibile tra sé e due amici, così che tutti abbiano lo stesso numero. Quante mele rimangono? Risolvi con una riga di codice MATLAB:
mod(17,3)
MATLAB esegue il codice, divide 17 per 3, e dice a Giovanni che rimarranno 2 mele.
Mod vs Rem
Una funzione strettamente correlata a "mod" è "rem" di MATLAB, abbreviazione di "remainder". Un possibile errore nell'uso di "mod" è che il risultato mantiene sempre il segno del divisore. Esempio:
mod(-17,3)
restituisce 2 positivo, perché 3 è positivo. Se un calcolo richiede il segno corretto sul risultato, usa "rem":
rem(-17,3)
In questo caso, MATLAB restituirà -2.
Alcune regole per Mod
Ci sono alcune regole da conoscere quando si usa "mod" in MATLAB, derivate dalle regole base della divisione:
mod(X,0)restituisceX, non errore.mod(X,X)restituisce0.mod(X,Y)ha lo stesso segno diY, finchéXeYnon sono uguali eYnon è zero.mod(X,Y)erem(X,Y)sono uguali seXeYhanno lo stesso segno, altrimenti differiscono diY.
Uso per congruenza
In aritmetica modulare, due numeri sono "congruenti mod n" se, divisi per "n", hanno lo stesso resto. Equivalentemente: aggiungendo o sottraendo multipli di "n" a un numero, si ottiene l'altro. Esempio: le 6:00 e le 18:00 sono "congruenti mod 12", perché aggiungendo 12 a una si ottiene l'altra. Convertendo le 18:00 in 1800 (formato militare), il seguente codice valuta "true" e dimostra la congruenza con "mod" di MATLAB:
mod(6,12) == mod(18,12)