Skip to main content
🔬 Advanced ✨ New

Calcolatore Modulo (Operatore %)

Calcola il modulo (resto della divisione) di qualsiasi coppia di numeri interi. Visualizza quoziente e resto. Calcolatore matematico online gratuito.

Cosa è l'operazione Modulo?

L'operazione modulo (mod, o %) restituisce il resto dopo aver diviso un numero da un altro. Per a mod b: dividere a per b, e il risultato è il resto. Ad esempio, 17 mod 5 = 2 (perché 17 = 3×5 + 2). Il risultato è sempre compreso tra [0, b-1] per valori positivi.

La relazione fondamentale: a = q×b + r, dove q è il quoziente (floor(a/b)) e r è il resto (0 ≤ r < b). Modulo è l'operazione compagna della divisione intera — se a ÷ b = q con resto r, allora a mod b = r. Questo calcolatore utilizza la definizione matematica del modulo vero (sempre non negativa per divisore positivo), piuttosto che il resto firmato utilizzato da alcuni linguaggi di programmazione.

L'aritmetica modulare — l'aritmetica con un modulo fisso dove i numeri "si avvolgono" — forma la base dell'aritmetica oraria. Le ore di un orologio sono calcolate mod 12 o mod 24. Se è le 10 e si aggiungono 5 ore: (10 + 5) mod 12 = 3 (PM). Questo comportamento di avvolgimento è centrale in innumerevoli algoritmi nella scienza dei computer, crittografia e teoria dei numeri.

Esempi e soluzioni passo dopo passo dell'operazione Modulo

La comprensione del modulo diventa intuitiva con esempi lavorati. Per ogni calcolo sotto, la formula è: resto = a - floor(a ÷ b) × b.

EspressioneQuoziente (floor)Resto (a mod b)Verifica
17 mod 5323×5 + 2 = 17 ✓
20 mod 4505×4 + 0 = 20 ✓
7 mod 3212×3 + 1 = 7 ✓
100 mod 714214×7 + 2 = 100 ✓
13 mod 13101×13 + 0 = 13 ✓
1 mod 5010×5 + 1 = 1 ✓
256 mod 1616016×16 + 0 = 256 ✓
365 mod 752152×7 + 1 = 365 ✓

Nota 365 mod 7 = 1: ciò ci dice che un anno non bisestile ha 52 settimane complete più 1 giorno in più, quindi il giorno della settimana si sposta di 1 ogni anno non bisestile. Un anno bisestile (366 giorni) mod 7 = 2, spostando il giorno di 2.

Applicazioni dell'aritmetica modulare

Il modulo compare in tutta la programmazione e la matematica. Verifica se un numero è pari o dispari: se n % 2 == 0, n è pari. Array circolari e buffer a anello: indice = (indice_corrente + 1) % dimensione_array si avvolge al principio. Tabelle di hash: bucket = hash(key) % numero_bucket mappa qualsiasi valore di hash a un indice di bucket valido, assicurando che non ci sia alcun accesso fuori dai limiti.

In calcoli di calendario, l'aritmetica della giornata della settimana utilizza mod 7. La formula di Zeller e l'algoritmo Doomsday entrambi si basano sull'aritmetica modulare per determinare il giorno della settimana per qualsiasi data. Questo funziona perché ci sono esattamente 7 giorni in una settimana — un modulo fisso. I offset orari utilizzano mod 24 per avvolgere correttamente i valori delle ore al di là dei confini di mezzanotte.

In sistemi digitali, il modulo viene utilizzato ovunque sono coinvolti gli indirizzi di memoria. Le voci delle tabelle di pagina, la selezione dei set di cache e l'I/O mappato sulla memoria utilizzano tutti l'indicizzazione modulare. I set di istruzioni del processore includono di solito un'istruzione di resto (modulo-simile) accanto alla divisione, e le istruzioni SIMD utilizzano il modulo per il sovrapposizione dei canali in scambi.

In la detezione degli errori, i controlli di ciclicità (CRC) e le somme di controllo vengono calcolate utilizzando l'aritmetica modulare polinomiale su GF(2). I numeri di carta di credito passano l'algoritmo Luhn (un controllo modulo-10). I numeri ISBN-10 dei libri utilizzano mod 11. Queste somme di controllo catturano gli errori di trascrizione e gli errori di singola cifra nei codici numerici.

Modulo in Crittografia

La base matematica della crittografia moderna a chiave pubblica è l'aritmetica modulare. Gli tre algoritmi crittografici più importanti — RSA, Diffie-Hellman e Crittografia delle Curve Ellittiche — si basano su operazioni eseguite modulo un grande numero primo o composto.

Crittografia RSA utilizza l'esponenziazione modulare: per crittografare un messaggio M con la chiave pubblica (e, n), calcola C = M^e mod n. Per decrittografare, calcola M = C^d mod n dove d è la chiave privata. La sicurezza si basa sulla difficoltà di fattorizzare n (un grande semiprimo) — conoscendo solo n, recuperare p e q è computazionalmente inattuabile per dimensioni di chiave superiori a 2048 bit.

Scambio di chiave Diffie-Hellman consente a due parti di stabilire un segreto condiviso su un canale non sicuro: Alice invia A = g^a mod p, Bob invia B = g^b mod p. Ogni parte calcola il segreto condiviso: Alice calcola B^a mod p = g^(ab) mod p, Bob calcola A^b mod p = g^(ab) mod p. Un intercettatore che intercetta g^a mod p e g^b mod p non può recuperare g^(ab) mod p senza risolvere il problema del logarithmo discreto.

La sicurezza di questi sistemi dipende dalla natura unidirezionale dell'esponenziazione modulare: calcolare g^a mod p è veloce (utilizzando la quadratura ripetuta, O(log a) moltiplicazioni), ma invertirla — trovare un dato g^a mod p — è creduto richiedere un tempo esponenziale per grandi primi p.

Modulo con Numeri Negativi e Casistiche di Confine

Il comportamento modulo con numeri negativi varia da linguaggio di programmazione a linguaggio di programmazione, il che causa molti bug difficili da trovare. La comprensione della differenza è critica per i sviluppatori di software.

Lingua-7 % 37 % -3Definizione
Python2-2Il segno segue il divisore (modulo vero)
JavaScript-11Il segno segue il dividendo (resto)
C / C++-11Il segno segue il dividendo (C99+)
Java-11Il segno segue il dividendo
Ruby2-2Il segno segue il divisore (modulo vero)
Math (definizione)21 (o indefinito)Sempre non negativo per divisore positivo

In matematica, il modulo sempre restituisce un risultato non negativo: -7 mod 3 = 2 (poiché -7 = -3×3 + 2, e 0 ≤ 2 < 3). Questo calcolatore utilizza la definizione matematica.

Il modo sicuro per assicurare un risultato non negativo in qualsiasi linguaggio: ((a % b) + b) % b. Questo gestisce gli input negativi correttamente e viene utilizzato internamente dal nostro calcolatore. Questo pattern è essenziale quando si utilizza il modulo per l'individuazione di array o calcoli di calendario dei giorni in cui i risultati negativi causerebbero errori.

Casistiche di confine da ricordare: (1) Qualsiasi numero mod 1 = 0 — dividere per 1 lascia nessun resto. (2) Qualsiasi numero mod se stesso = 0. (3) 0 mod qualsiasi numero non zero = 0. (4) Divisione (e modulo) per zero è indefinita — sempre verificare il divisore prima di calcolare il modulo. Il nostro calcolatore visualizza un messaggio di errore chiaro per il modulo per zero.

Modulo e Test di Divisibilità

Uno dei principali utilizzi pratici del modulo è il test di divisibilità senza eseguire divisioni complete. Un numero a è divisibile da b se e solo se a mod b = 0. Ciò consente controlli di divisibilità veloci:

Divisibilità daTestEsempio
2n mod 2 = 0 (ultimo dígito pari)128 mod 2 = 0 ✓
3Summa dei dígiti mod 3 = 0123: 1+2+3=6, 6 mod 3 = 0 ✓
4Ultimi due dígiti mod 4 = 0312: 12 mod 4 = 0 ✓
5Ultimo dígito è 0 o 5735 mod 5 = 0 ✓
9Summa dei dígiti mod 9 = 0369: 3+6+9=18, 18 mod 9 = 0 ✓
10n mod 10 = 0 (ultimo dígito è 0)500 mod 10 = 0 ✓

Questi regole di divisibilità sono scorciatoie derivate dalle proprietà dell'aritmetica modulare. Le regole della somma dei dígiti per 3 e 9 funzionano perché 10 ≡ 1 (mod 3) e 10 ≡ 1 (mod 9), il che significa che il valore posizionale di ogni dígito è irrilevante per la divisibilità da 3 o 9. Queste sono insegnate nelle scuole elementari senza il contesto dell'aritmetica modulare, ma il meccanismo sottostante è modulo.

Esponenziazione Modulare: Potenza veloce Mod

Calcolare a^b mod n direttamente, prima calcolando a^b, poi prendendo mod n, è impraticabile per esponenti grandi — a^100 può avere migliaia di dígiti. L'esponenziazione modulare utilizza l'identità (a×b) mod n = ((a mod n) × (b mod n)) mod n per mantenere i risultati intermedi piccoli.

L'algoritmo veloce utilizza la quadratura ripetuta (esponenziazione binaria):

Questo riduce il numero di moltiplicazioni da b a O(log₂ b). Per b = 2048-bit RSA exponents (~10^600), si tratta della differenza tra miliardi di moltiplicazioni e solo ~2000. Senza questa ottimizzazione, l'encryption RSA sarebbe completamente impraticabile.

Domande frequenti

Cosa significa 15 mod 4?

15 mod 4 = 3. Perché 15 = 3×4 + 3, il resto è 3. Verifica: 3×4 = 12, e 15 - 12 = 3. ✓

Cosa significa mod 0?

Il modulo per zero è indefinito, come la divisione per zero. Non è possibile calcolare un mod 0. Il nostro calcolatore restituisce un messaggio di errore in questo caso. Qualsiasi operazione basata sulla divisione richiede un divisore non nullo.

Come il modulo si relaziona alla divisibilità?

Un numero a è divisibile da b se e solo se a mod b = 0. Ad esempio, 24 mod 6 = 0, quindi 24 è divisibile da 6. 25 mod 6 = 1, quindi 25 non è divisibile da 6. Ciò rende il modulo lo strumento fondamentale per il test di divisibilità nella scienza dei computer.

Cosa è la differenza tra mod e resto?

Per numeri positivi, mod e resto sono identici. Per numeri negativi, differiscono: il modulo matematico restituisce sempre un risultato non negativo (il segno segue il divisore), mentre il resto prende il segno del divisore. Ad esempio, -7 mod 3 = 2 (matematica), ma -7 resto 3 = -1 (come in C, Java, JavaScript).

Cosa è 10 mod 3?

10 mod 3 = 1. Perché 10 = 3×3 + 1, il resto è 1. Puoi verificare: 3×3 = 9, e 10 - 9 = 1. Ciò significa che 10 lascia un resto di 1 quando diviso per 3, quindi 10 non è divisibile per 3.

Cosa è 0 mod 5?

0 mod 5 = 0. Zero diviso da qualsiasi numero non nullo dà il quoziente 0 e il resto 0. In generale, 0 mod n = 0 per qualsiasi n ≠ 0. Ciò è coerente con la definizione: 0 = 0×5 + 0.

Come il modulo viene utilizzato nel programming?

Usi comuni del programming includono: controllare se un numero è pari o dispari (n%2==0), avvolgere gli indici degli array (index%length), implementare buffer a anello, distribuire gli elementi in cassette in tabella di hash (hash%size), ruotare attraverso gli stati in una macchina di stato, e assicurare che gli eventi periodici si attivino ogni n-esima iterazione (counter%n==0).

Che cos'è l'aritmetica del orologio?

L'aritmetica del orologio è l'aritmetica modulare quotidiana. Un orologio da 12 ore utilizza mod 12: 11 ore + 3 ore = (11+3) mod 12 = 2 ore. Questo comportamento di avvolgimento è precisamente l'aritmetica modulare. Allo stesso modo, i giorni della settimana utilizzano mod 7, e l'orologio militare utilizza mod 24 per le ore.

Perché il modulo è importante nella crittografia?

L'aritmetica modulare rende possibili le funzioni unidirezionali. Calcolare g^a mod p (dato g, a, p) è veloce, ma trovare g^a mod p e p (il problema del logaritmo discreto) è computazionalmente inaccessibile per grandi primi. Questa asimmetria è alla base dell'intercambio di chiavi Diffie-Hellman, RSA e della maggior parte della crittografia a chiave pubblica che protegge le comunicazioni internet.

Cosa è il risultato di qualsiasi numero mod 1?

Qualsiasi intero mod 1 = 0. Dividere per 1 lascia sempre un resto zero — ogni intero è perfettamente divisibile per 1. Ciò è matematicamente coerente: a = a×1 + 0, quindi il resto è sempre 0. Questo caso limite è importante gestire nelle implementazioni dell'aritmetica modulare.

Modulo nella vita di tutti i giorni: esempi pratici

La aritmetica modulare si presenta molto più spesso nella vita di tutti i giorni di quanto la maggior parte delle persone si renda conto. Il momento in cui leggi l'ora, calcoli quando un evento ricorrente si ripete, controlli se un numero è divisibile per 9, o guardi l'ultima cifra di un anno per determinare il giorno della settimana in cui cade un anniversario, stai facendo l'aritmetica modulare — anche se non la chiami per nome.

Programmazione e ricorrenza: Se un evento si verifica ogni 7 giorni e oggi è martedì (giorno 2, zero-indice da domenica=0), allora 30 giorni dopo è (2+30) mod 7 = 32 mod 7 = 4, che è giovedì. Questa calcolazione diretta è più veloce del conteggio delle settimane e dei giorni separatamente. Allo stesso modo, se una sottoscrizione si rinnova il 28 di ogni mese e attualmente è il 15, i giorni fino al rinnovo sono (28-15) mod 31 = 13 giorni.

Controlli digitali: Il codice a barre ISBN-13 utilizza il modulo 10. L'ultima cifra di qualsiasi codice ISBN-13 è scelta in modo che la somma ponderata di tutti i 13 cifre sia divisibile per 10. Se si sbagli una singola cifra quando si inserisce il codice ISBN di un libro, il controllo fallisce (mod 10 ≠ 0) e si segnala un errore. I numeri di carta di credito utilizzano l'algoritmo Luhn — un controllo mod-10 — per lo stesso scopo. Lo standard ISBN-10 utilizza il modulo 11, consentendo la detezione di singole transposizioni.

Memoria e indirizzi del computer: La memoria RAM è solitamente indirizzata in potenze di 2 (1024, 2048, 4096 byte per pagina). Quando un programma accede alla memoria, il sistema operativo utilizza il modulo per calcolare in quale pagina di memoria cade l'indirizzo: page_number = address mod page_size. La selezione della riga di cache nei cache CPU utilizza il modulo in modo simile. Il buffer di avvolgimento in elaborazione audio, la coda di pacchetti di rete e la trasmissione video utilizzano tutte la matematica del buffer circolare: write_position = (write_position + 1) % buffer_size.

Pattern artistici e musicali: I pattern ritmici nella teoria musicale vengono analizzati utilizzando l'aritmetica modulare. Un tempo 4/4 ha battiti 0, 1, 2, 3 che si ripetono — un ciclo mod-4. I poliritmi si verificano quando due ritmi indipendenti con periodi m e n giocano contemporaneamente; si sincronizzano ogni lcm(m,n) battiti. I pattern visivi come le tessellazioni di piastrelle si ripetono con periodi modulare in due dimensioni.

Calcoli geografici e di fuso orario: I fusi orari UTC vanno da -12 a +14. La conversione tra fusi orari: data e ora T in UTC, ora locale = (T + offset) mod 24. Il valore risultante può sembrare imprevedibile (ad esempio, 23 + 5 = 28, mod 24 = 4, che significa 4:00 del giorno successivo), ma l'operazione mod gestisce correttamente il confine di mezzanotte. I passaggi attraverso la linea internazionale di data utilizzano il modulo 24 in combinazione con i calcoli del giorno della settimana utilizzando il modulo 7.

Capire il modulo rende questi calcoli quotidiani più chiari, più veloci e meno soggetti a errori. Una volta che si vede il pattern, si noterà l'aritmetica modulare nelle ottimizzazioni del compilatore, negli algoritmi di rotazione dei giochi video, nel calendario rovinato e nell'equilibrio del carico tra cluster di server — tutti che si basano sul semplice ma potente concetto di resto dopo la divisione.