Funzione modulo
Una funzione modulo divide due numeri e restituisce il resto. Richiede gli stessi valori di input di un'operazione di divisione, ma restituisce il valore "rimanente" invece del risultato della divisione. Ad esempio:
- 7 mod 3 = 1
- 8 mod 3 = 2
Se non c'è resto, il risultato è zero.
- 9 mod 3 = 0
Nelle formule matematiche, l'operatore mod o "modulo" è spesso rappresentato con il segno di percentuale. Ad esempio, 7 mod 3 può essere scritto come la seguente espressione:
- 7 % 3 = 1
In informatica, una funzione mod può essere scritta come mod(x,y) o in modo simile, a seconda del linguaggio di programmazione. Ad esempio:
- mod(7,3) = 1
La funzione precedente divide il primo valore (dividendo) per il secondo valore (divisore) e restituisce il resto. Poiché 7 ÷ 3 = 2r1, il risultato di mod(7,3) è 1.
Applicazioni della funzione modulo
La funzione modulo ha diversi impieghi nella programmazione. Poiché il risultato deve essere inferiore al divisore, può limitare i risultati a un intervallo specifico. Ad esempio, mod(x,4) può restituire solo 0, 1, 2 o 3, supponendo che x sia un intero. È utile per controllare ogni valore n-esimo o classificare i risultati in un numero limitato di "categorie".
Nella maggior parte dei linguaggi di programmazione, 0 viene valutato come falso e gli altri numeri come vero. Pertanto, una funzione modulo può fornire un risultato booleano: false se due numeri sono divisibili senza resto e true se non lo sono. Di seguito è riportato un esempio di una funzione modulo all'interno di un'istruzione if:
if (mod(x,5)) then { ... }
Se x non è divisibile senza resto per 5, verrà eseguito il codice nella clausola then. Se x è divisibile per cinque — 5, 10, 15, 20, ecc. — il codice non verrà eseguito.
NOTE: Le funzioni modulo hanno spesso due interi come argomenti. Tuttavia, sono accettabili anche numeri in virgola mobile. Due valori interi producono sempre un intero, ma uno o più input frazionari possono restituire un risultato frazionario. Ad esempio, 8 % 2.5 = 0.5 poiché 8 ÷ 2.5 = 3r0.5.
Metti alla prova le tue conoscenze