Come usare l'aritmetica modulare in Python
Nel linguaggio Python posso lavorare con l'aritmetica modulare semplicemente usando l'operatore resto % ( mod ).
n%k
Dove n è un numero intero qualsiasi mentre k è la cardinalità del gruppo.
Cos'è l'aritmetica modulare
Nell'aritmetica modulare quando i numeri oltrepassano un numero n, il conteggio riparte da zero come in un orologio.
Per questa ragione l'aritmetica modulare è anche detta aritmetica dell'orologio.
E' particolarmente utile nella crittografia.
Un esempio pratico
Ho un gruppo con cinque simboli (0,1,2,3,4) rispetto all'addizione.
Quindi, la serie di numeri dovrebbe essere
$$ 0,1,2,3,4,0,1,2,3,4,0,... $$
Se scrivo 4+3 il risultato è 2 perché la serie ( 4,0,1,2) ricomincia daccapo dopo 4.
$$ 4+3 = 2 $$
Come faccio a fare in modo che 4+3 dia 2 e non 7?
E' molto semplice, devo soltanto scrivere.
>>> (4+3)%5
2
Questa operazione non fa altro che calcolare il resto della divisione "sette diviso cinque".
Allo stesso modo posso calcolare tutta la serie.
Con un semplice ciclo stampo tutti i numeri della serie da 0 a 20 nell'addizione modulo 5.
for i in range(0,20):
print(i,"=", i%5)
Il risultato è
0 = 0
1 = 1
2 = 2
3 = 3
4 = 4
5 = 0
6 = 1
7 = 2
8 = 3
9 = 4
10 = 0
11 = 1
12 = 2
13 = 3
14 = 4
15 = 0
16 = 1
17 = 2
18 = 3
19 = 4
E così via.