Skip to main content
🔬 Advanced ✨ New

Calculator Modulo

Calculați restul unei operațiuni de diviziune. Găsiți un mod b instantaneu cu explicație pas cu pas. Acest instrument matematic gratuit oferă rezultate instantanee și exacte.

Ce este Operaţiunea Modulo?

Operația modulo (mod, sau %) returnează restul după împărțirea unui număr la altul. Pentru un mod b: împărțiți a la b, iar rezultatul este restul. De exemplu, 17 mod 5 = 2 (pentru că 17 = 3x5 + 2). Rezultatul este întotdeauna în intervalul [0, b-1] pentru valori pozitive.

Relaţia fundamentală:a = qxb + r, unde q este coeficientul (floor ((a/b)) și r este restul (0 <= r < b). Modulo este operația însoțitoare a diviziunii întregi - dacă a ÷ b = q cu restul r, atunci un mod b = r. Acest calculator utilizează adevărata definiție matematică a modulului (totdeauna non-negativă pentru divizorul pozitiv), mai degrabă decât restul semnat utilizat de unele limbaje de programare.

Aritmetica modulară - aritmetica cu un modul fix în care numerele "se înfășoară" - formează baza aritmeticii ceasului. Orele de pe un ceas sunt calculate mod 12 sau mod 24. Dacă este 10 AM și adăugați 5 ore: (10 + 5) mod 12 = 3 (PM). Acest comportament de înfășurare este central pentru nenumărate algoritmi în informatică, criptografie și teorie a numerelor.

Exemple de module și soluții pas cu pas

Înțelegerea modulului devine intuitivă cu exemple lucrate.

ExprimareCoeficientul (podea)Restul (a mod b)Verificarea
17 mod 5323x5 + 2 = 17
20 mod 4505x4 + 0 = 20
7 mod 3212x3 + 1 = 7
100 mod 714214x7 + 2 = 100
13 mod 13101x13 + 0 = 13
1 mod 5010x5 + 1 = 1
256 mod 1616016x16 + 0 = 256
365 mod 752152x7 + 1 = 365

Observați 365 mod 7 = 1: acest lucru ne spune că un an fără sărbătoare are 52 de săptămâni complete plus 1 zi suplimentară, motiv pentru care ziua săptămânii se deplasează cu 1 în fiecare an fără sărbătoare.

Aplicații ale aritmeticii modulare

Modulo apare de-a lungul programării și matematicii.Verificare par/par:dacă n % 2 == 0, n este par.Cu un diametru de minimum 50 mm, dar maximum 50 mmindex = (current_index + 1) % array_size se înfășoară în jurul startului.Tabelele de hash:bucket = hash(key) % num_buckets mapează orice valoare hash la un index de bucket valabil, asigurând că nu există acces în afara limitelor.

In Calculele calendaristice, aritmetica zilei săptămânii utilizează mod 7. Formula Zeller și algoritmul Doomsday se bazează pe aritmetica modulară pentru a determina ziua săptămânii pentru orice dată. Acestea funcționează pentru că există exact 7 zile într-o săptămână - un modul fix.

In sisteme digitale, modulul este utilizat oriunde sunt implicate adresele de memorie. Intrările în tabelul de pagini, selecția setului de cache și I/O-ul mapate în memorie se bazează pe indexarea modulară. Seturile de instrucțiuni ale CPU includ de obicei o instrucțiune de rest ( asemănătoare cu modulul) alături de diviziune, iar instrucțiunile vectoriale SIMD folosesc modulul pentru înfășurarea benzii în shuffle-uri.

In detectarea erorilorNumerele cărților de credit trec algoritmul Luhn (o verificare modulo-10). Numerele cărților ISBN-10 folosesc mod 11. Aceste sume de verificare captează transpunerea și erorile de o singură cifră în codurile numerice.

Modul în criptografie

Aritmetica modulară este fundația matematică a criptografiei moderne cu cheie publică. Cele trei algoritmi criptografice cele mai importante - RSA, Diffie-Hellman și criptografia cu curbă eliptică - se bazează pe operațiuni efectuate modulo un număr prim mare sau compus.

Criptarea RSAfolosește exponențierea modulară: pentru a cripta un mesaj M cu cheia publică (e, n), calculează C = M^e mod n. Pentru a decripta, calculează M = C^d mod n unde d este cheia privată. Securitatea se bazează pe dificultatea factorizării n (o semiprimă mare) - știind doar n, recuperarea p și q este imposibilă din punct de vedere computațional pentru dimensiunile cheii de peste 2048 de biți.

Schimb de cheie Diffie-Hellmanpermite celor două părți să stabilească un secret comun pe un canal nesigur: Alice trimite A = g^a mod p, Bob trimite B = g^b mod p. Fiecare parte calculează secretul comun: Alice calculează B^a mod p = g^(ab) mod p, Bob calculează A^b mod p = g^(ab) mod p. Un spion care interceptează g^a mod p și g^b mod p nu poate recupera g^(ab) mod p fără a rezolva problema logaritmului discret.

Securitatea acestor sisteme depinde de natura unidirecțională a exponențierii modulare: calculul g ^ a mod p este rapid (folosind multiplicări repetate la pătrat, O ((log a)), dar inversarea acestuia - găsirea unui anumit g ^ a mod p - se crede că necesită timp exponențial pentru numerele prime mari p.

Modul cu numere negative și cazuri de marginea

Comportamentul modulului cu numere negative variază în funcție de limbajul de programare, ceea ce cauzează multe bug-uri greu de găsit.

Limba-7% 37 % -3Definiție
Python2-2Semnul urmează divizorul (modulul adevărat)
JavaScript-11Semnul urmează dividendului (restul)
C / C++-11Semnul urmează dividendului (C99+)
Java-11Semnul urmează dividendele.
Rubin2-2Semnul urmează divizorul (modulul adevărat)
Matematică (definiție)21 (sau nedefinit)Întotdeauna non-negativ pentru divizorul pozitiv

În matematică, modulul returnează întotdeauna un rezultat non-negativ: -7 mod 3 = 2 (deoarece -7 = -3x3 + 2 și 0 <= 2 < 3).

Modalitatea sigură de a asigura un rezultat non-negativ în orice limbă:((a % b) + b) % bAcest model este esențial atunci când se utilizează modulul pentru indexarea matriței sau pentru calculele zilei calendaristice în care rezultatele negative ar cauza erori.

Cazuri de margine de reţinut:(1) Orice număr mod 1 = 0 - împărțirea cu 1 nu lasă niciun rest. (2) Orice număr mod în sine = 0. (3) 0 mod orice număr non-zero = 0. (4) Diviziunea (și modulul) cu zero este nedefinită - întotdeauna validați divisorul înainte de a calcula modulul. Calculatorul nostru afișează un mesaj de eroare clar pentru modulul cu zero.

Testul modulului și al divizibilității

Una dintre cele mai practice utilizări ale modulului este testarea divizibilității fără a efectua o diviziune completă.

Divizibilitatea cuÎncercareExemplu
2n mod 2 = 0 (ultima cifră par)128 mod 2 = 0
3Suma cifrelor mod 3 = 0123: 1+2+3=6, 6 mod 3 = 0
4Ultimele două cifre mod 4 = 0312: 12 mod 4 = 0
5Ultima cifră este 0 sau 5735 mod 5 = 0
9Suma cifrelor mod 9 = 0369: 3+6+9=18, 18 mod 9 = 0
10n mod 10 = 0 (ultima cifră este 0)500 mod 10 = 0

Aceste reguli de divizibilitate sunt scurtături derivate din proprietățile aritmeticii modulare. Regulile de sumă de cifre pentru 3 și 9 funcționează deoarece 10 1 (mod 3) și 10 1 (mod 9), ceea ce înseamnă că valoarea pozițională a fiecărei cifre este irelevantă pentru divizibilitatea cu 3 sau 9. Acestea sunt predate în școala elementară fără contextul aritmetic modular, dar mecanismul de bază este modulo.

Exponentiere modulară: Fast Power Mod

Calculul a^b mod n direct prin primul calcul a^b, apoi luând mod n, este imposibil pentru exponenții mari - a^100 poate avea mii de cifre. Exponentierea modulară folosește identitatea (axb) mod n = ((a mod n) x (b mod n)) mod n pentru a menține rezultatele intermediare mici.

Algoritmul rapid utilizează împărțirea în pătrat repetată (exponentiere binară):

Acest lucru reduce numărul de multiplicări de la b la O ((log2 b). Pentru b = 2048 de biți exponenți RSA (~ 10 ^ 600), aceasta este diferența dintre trilioane de multiplicări și doar ~ 2000. Fără această optimizare, criptarea RSA ar fi complet nepractică.

Întrebări frecvente

Ce este 15 mod 4?

15 mod 4 = 3. Pentru că 15 = 3x4 + 3, restul este 3. Verificați: 3x4 = 12 și 15 - 12 = 3.

Ce înseamnă mod 0?

Modulo cu zero este nedefinit, la fel ca și diviziunea cu zero. Nu poți calcula un mod 0. Calculatorul nostru returnează un mesaj de eroare în acest caz. Orice operație bazată pe diviziune necesită un divizor non-zero.

Ce legătură are modulul cu divizibilitatea?

Un număr a este divizibil cu b dacă și numai dacă a mod b = 0. De exemplu, 24 mod 6 = 0, deci 24 este divizibil cu 6. 25 mod 6 = 1, deci 25 nu este divizibil cu 6. Acest lucru face ca modulul să fie instrumentul fundamental pentru testarea divizibilității în informatică.

Care e diferenţa dintre mod şi rest?

Pentru numerele pozitive, mod și rest sunt identice. Pentru numerele negative, ele diferă: modulul matematic returnează întotdeauna un rezultat non-negativ (semnul urmează divizorul), în timp ce restul ia semnul dividendului. De exemplu, -7 mod 3 = 2 (matematică), dar -7 rest 3 = -1 (ca în C, Java, JavaScript).

Ce este 10 mod 3?

10 mod 3 = 1. Deoarece 10 = 3x3 + 1, restul este 1. Puteți verifica: 3x3 = 9, și 10 - 9 = 1. Aceasta înseamnă că 10 lasă un rest de 1 atunci când este împărțit la 3, deci 10 nu este divizibil la 3.

Ce este 0 mod 5?

0 mod 5 = 0. zero împărțit la orice număr diferit de zero dă coeficientul 0 și restul 0. în general, 0 mod n = 0 pentru orice n ≠ 0.

Cum se folosește modulul în programare?

Utilizările comune de programare includ: verificarea indicilor de matrice par/par (n%2==0), înfășurarea indicilor de matrice (index%length), implementarea tamponilor de inel, distribuirea elementelor în găleți în tabelele de hash (hash%size), rotirea prin stări într-o mașină de stare și asigurarea declanșării evenimentelor periodice la fiecare iterație n-a (counter%n==0).

Ce este aritmetica ceasului?

Aritmetica cu ceas este aritmetica modulară de zi cu zi. Un ceas de 12 ore folosește mod 12: ora 11 + 3 ore = (11 + 3) mod 12 = ora 2. Acest comportament de înfășurare este exact aritmetica modulară. În mod similar, zilele săptămânii folosesc mod 7, iar timpul militar folosește mod 24 pentru ore.

De ce este modulul important în criptografie?

Aritmetica modulară face posibile funcțiile unidirecționale. Calculul g^a mod p (dată g, a, p) este rapid, dar găsirea unei date g^a mod p și p (problema logaritmului discret) este imposibilă din punct de vedere computațional pentru numerele prime mari. Această asimetrie stă la baza schimbului de chei Diffie-Hellman, RSA, și a majorității criptografiei cu cheie publică care protejează comunicațiile pe internet.

Care este rezultatul oricărui număr mod 1?

Orice număr întreg mod 1 = 0. Diviziunea cu 1 nu lasă întotdeauna niciun rest - fiecare număr întreg este perfect divizibil cu 1.

Modulo în viaţa de zi cu zi: Exemple practice

Aritmetica modulară apare mult mai des în viața de zi cu zi decât majoritatea oamenilor își dau seama. În momentul în care citești un ceas, calculezi când se repetă un eveniment săptămânal, verifici dacă un număr este divizibil cu 9, sau te uiți la ultima cifră a unui an pentru a determina în ce zi a săptămânii cade o aniversare, faci aritmetică modulară - chiar dacă nu folosești acest nume pentru ea.

Programare și recurență:Dacă un eveniment are loc la fiecare 7 zile și astăzi este marți (ziua 2, zero-indexat de duminică = 0), atunci 30 de zile de acum este (2+30) mod 7 = 32 mod 7 = 4, care este joi. Acest calcul direct este mai rapid decât numărarea săptămânilor și a zilelor separat. În mod similar, dacă un abonament se reînnoiește pe data de 28 a fiecărei luni și este în prezent a 15-a, zilele până la reînnoire sunt (28-15) mod 31 = 13 zile.

Cifrele de verificare digitale:Standardul ISBN-13 folosește modulul 10. Ultima cifră a oricărei ISBN-13 este aleasă astfel încât suma ponderată a tuturor celor 13 cifre să fie divizibilă cu 10. Dacă introduceți greșit o singură cifră atunci când introduceți ISBN-ul unei cărți, verificarea va eșua (mod 10 ≠ 0) și va fi semnalată o eroare. Numerele de carduri de credit folosesc algoritmul Luhn - un control mod-10 - în același scop. Standardul ISBN-10 folosește mod 11, permițând detectarea transpozițiilor unice.

Memoria și adresele calculatorului:RAM-ul este adresat în mod obișnuit în puteri de 2 (1024, 2048, 4096 byte pe pagină). Când un program accesează memoria, sistemul de operare utilizează modulul pentru a calcula în care pagină de memorie se încadrează o adresă: page_number = address mod page_size. Selecția liniei de cache în cache-urile CPU utilizează modulul în mod similar. Buffer wrap-around în procesarea audio, coada pachetelor de rețea și streaming-ul video utilizează toate matematica bufferului circular: write_position = (write_position + 1) % buffer_size.

Modele artistice si muzicale:Modelele ritmice din teoria muzicii sunt analizate folosind aritmetică modulară. O semnătură de timp 4/4 are bătăi repetate 0, 1, 2, 3 - un ciclu mod-4. Poliritmii apar atunci când două ritmuri independente cu perioade m și n se joacă simultan; ele sincronizează fiecare bătăi lcmm (((, n). Modelele vizuale, cum ar fi teselarea plăcilor, se repetă cu perioade modulare în două dimensiuni.

Calcularea zonelor geografice și orare:Convertirea între fusurile orare: dată ora T în UTC, ora locală = (T + offset) mod 24. Valoarea rezultată ar putea părea neintuitivă (de exemplu, 23 + 5 = 28, mod 24 = 4, adică 4:00 AM a doua zi), dar operația mod gestionează corect granița de la miezul nopții.

Înțelegerea modulului face ca aceste calcule de zi cu zi să fie mai clare, mai rapide și mai puțin predispuse la erori. Odată ce vedeți modelul, veți observa aritmetica modulară în optimizarea compilatorului, algoritmi de rotație în jocurile video, programarea turneelor round-robin și echilibrarea sarcinii între clusterele de servere - toate bazate pe conceptul simplu, dar puternic de rest după diviziune.