Skip to main content
🔬 Advanced ✨ New

Kalkulator Modulo

Oblicz resztę operacji dzielenia. Znajdź mod b natychmiast z wyjaśnieniem krok po kroku. To bezpłatne narzędzie matematyczne daje natychmiastowe, dokładne wyniki.

Czym jest operacja Modulo?

Operacja modulo (mod, lub %) zwraca resztę po dzieleniu jednej liczby przez drugą. Dla mod b: podziel a przez b, a wynik jest resztą. Na przykład, 17 mod 5 = 2 (ponieważ 17 = 3x5 + 2).

Podstawowy związek:a = qxb + rModulo jest operacją towarzyszącą dzieleniu liczb całkowitych - jeśli a ÷ b = q z resztą r, to mod b = r. Ten kalkulator używa prawdziwej matematycznej definicji modułu (zawsze nie ujemnej dla dodatniego dzielnika), a nie pozostałości podpisanej używanej przez niektóre języki programowania.

Arytmetyka modułowa - arytmetyka z ustalonym modułem, w którym liczby "owijają się wokół" - stanowi podstawę arytmetyki zegarowej. Godziny na zegarze są obliczane mod 12 lub mod 24. Jeśli jest 10 rano i dodajesz 5 godzin: (10 + 5) mod 12 = 3 (PM). To zachowanie owijające się jest centralne dla niezliczonych algorytmów w informatyce, kryptografii i teorii liczb.

Przykłady modułów i rozwiązania krok po kroku

Dla każdego obliczenia poniżej formuła brzmi: reszta = a - podłoga (a ÷ b) x b.

WyrażenieWspółczynnik (podłoga)Pozostałość (a mod b)Weryfikacja
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

Zwróć uwagę, że 365 mod 7 = 1: mówi nam to, że rok bez przerwy ma 52 pełne tygodnie plus 1 dodatkowy dzień, dlatego dzień tygodnia przesuwa się o 1 w każdym roku bez przerwy.

Zastosowania arytmetyki modułowej

Modulo pojawia się w całym programowaniu i matematyce.Sprawdzenie parzyste/nieparzyste:jeśli n % 2 == 0, n jest parzyste.O masie przekraczającej 40 g/m2index = (current_index + 1) % array_size wraps around to the start.Tabele haszingu:bucket = hash(key) % num_buckets mapuje dowolną wartość hashu do prawidłowego indeksu bucket, zapewniając brak dostępu poza granice.

In kalkulacje kalendarzoweFormuła Zellera i algorytm Doomsday opierają się na arytmetyce modułowej, aby określić dzień tygodnia dla dowolnej daty.

In systemy cyfrowe, modulo jest używane wszędzie tam, gdzie są zaangażowane adresy pamięci. Wpisy w tabelach stron, wybór zestawu pamięci podręcznej i I/O mapowane w pamięci opierają się na modułowym indeksowaniu. Zestawy instrukcji CPU zazwyczaj zawierają instrukcję resztki (podobną do modułu) obok podziału, a instrukcje wektorowe SIMD używają modulo do zawijania pasów w mieszaniach.

In wykrywanie błędówNumery kart kredytowych przechodzą algorytm Luhna (kontrolę modulo-10). Numery książek ISBN-10 używają mod 11.

Modulo w kryptografii

Arytmetyka modułowa jest podstawą matematyczną współczesnej kryptografii klucza publicznego. Trzy najważniejsze algorytmy kryptograficzne - RSA, Diffie-Hellman i kryptografia krzywej eliptycznej - wszystkie opierają się na operacjach wykonywanych modulo dużej liczby pierwszej lub złożonej.

szyfrowanie RSAużywa wykładni modułowej: aby zaszyfrować wiadomość M z kluczem publicznym (e, n), oblicz C = M^e mod n. Aby odszyfrować, oblicz M = C^d mod n, gdzie d jest kluczem prywatnym. Bezpieczeństwo opiera się na trudności rozkładu n (dużego semiprime) - znając tylko n, odzyskanie p i q jest obliczeniowo niemożliwe dla wielkości klucza powyżej 2048 bitów.

Wymiana kluczy Diffie-Hellmanumożliwia dwóm stronom ustalenie wspólnego sekretu za pośrednictwem niezabezpieczonego kanału: Alice wysyła A = g^a mod p, Bob wysyła B = g^b mod p. Każda ze stron oblicza wspólny sekret: Alice oblicza B^a mod p = g^(ab) mod p, Bob oblicza A^b mod p = g^(ab) mod p. Podsłuchacz, który przechwytuje g^a mod p i g^b mod p, nie może odzyskać g^(ab) mod p bez rozwiązania problemu logarytmu dyskretnego.

Bezpieczeństwo tych systemów zależy od jednostronnego charakteru wykładni modułowej: obliczanie g^a mod p jest szybkie (za pomocą powtarzającego się kwadratowania, O ((log a) mnożenia), ale odwrócenie go - znalezienie danego g^a mod p - uważa się, że wymaga czasu wykładniczego dla dużych liczb pierwszych p.

Modulo z liczbami ujemnymi i przypadkami krawędziami

Zachowanie modułów z liczbami ujemnymi różni się w zależności od języka programowania, co powoduje wiele trudnych do znalezienia błędów.

Język-7 % 37 % -3Definicja
Python2-2Znak następuje po dzielniku (prawdziwy moduł)
JavaScript-11Oznaczenie następuje po dywidendzie (pozostałość)
C / C++-11Znak następuje po dywidendzie (C99+)
Japońska-11Znak po dywidendzie
Rubin2-2Znak następuje po dzielniku (prawdziwy moduł)
Matematyka (definicja)21 (lub nieokreślony)Zawsze nie ujemny dla dodatniego dzielnika

W matematyce modulo zawsze zwraca wynik nieujemny: -7 mod 3 = 2 (ponieważ -7 = -3x3 + 2 i 0 <= 2 < 3).

Bezpieczny sposób zapewnienia wyniku nie ujemnego w dowolnym języku:((a % b) + b) % bTen wzór jest niezbędny przy użyciu modułu do indeksowania tablic lub obliczeń dni kalendarzowych, w których wyniki ujemne powodowałyby błędy.

Przypadki na krawędzi do zapamiętania:(1) Każda liczba mod 1 = 0 -- dzielenie przez 1 nie pozostawia resztki. (2) Każda liczba mod sama = 0. (3) 0 mod każda liczba niezerowa = 0. (4) Dzielenie (i modulo) przez zero jest nie zdefiniowane - zawsze sprawdzaj dzielnik przed obliczeniem modulo. Nasz kalkulator wyświetla wyraźny komunikat o błędzie dla modulo przez zero.

Testy modułowe i podzielności

Jednym z najbardziej praktycznych zastosowań modułu jest testowanie podzielności bez wykonywania pełnego podziału. Liczba a jest podzielna przez b, jeśli i tylko jeśli mod b = 0.

Podzielność przezBadaniePrzykład
2n mod 2 = 0 (ostatnia cyfra parzona)128 mod 2 = 0
3Suma cyfr mod 3 = 0123: 1+2+3=6, 6 mod 3 = 0
4Ostatnie dwie cyfry mod 4 = 0312: 12 mod 4 = 0 .
5Ostatnia cyfra to 0 lub 5735 mod 5 = 0
9Suma cyfr mod 9 = 0369: 3+6+9=18, 18 mod 9 = 0
10n mod 10 = 0 (ostatnia cyfra to 0)500 mod 10 = 0 .

Te zasady dzielności są skrótami pochodzącymi z właściwości arytmetyki modułowej. Zasady sumy cyfr dla 3 i 9 działają, ponieważ 10 1 (mod 3) i 10 1 (mod 9), co oznacza, że wartość pozycyjna każdej cyfry jest nieistotna dla dzielności przez 3 lub 9.

Eksponencja modułowa: Fast Power Mod

Obliczanie a^b mod n bezpośrednio, najpierw obliczając a^b, a następnie biorąc mod n, jest niepraktyczne dla dużych wykładników - a^100 może mieć tysiące cyfr. Wykładnia modułowa używa tożsamości (axb) mod n = ((a mod n) x (b mod n)) mod n, aby zachować małe wyniki pośrednie.

Szybki algorytm wykorzystuje powtarzające się kwadratowanie (eksponentacja binarna):

Zmniejsza to liczbę mnożeń z b do O ((log2 b). Dla b = 2048-bitowych wykładników RSA (~10^600), jest to różnica między trylionami mnożeń i tylko ~2000. Bez tej optymalizacji szyfrowanie RSA byłoby całkowicie niepraktyczne.

Często zadawane pytania

Co to jest 15 mod 4?

15 mod 4 = 3. Ponieważ 15 = 3x4 + 3, reszta to 3. Sprawdź: 3x4 = 12, a 15 - 12 = 3.

Co to znaczy mod 0?

Modulo przez zero jest nie zdefiniowane, podobnie jak dzielenie przez zero. Nie można obliczyć mod 0. Nasz kalkulator zwraca komunikat o błędzie w tym przypadku. Każda operacja oparta na dzieleniu wymaga niezerowego dzielnika.

Jak modulo odnosi się do dzielności?

Liczba a jest podzielna przez b, jeśli a mod b = 0. Na przykład, 24 mod 6 = 0, więc 24 jest podzielne przez 6. 25 mod 6 = 1, więc 25 nie jest podzielne przez 6. To sprawia, że modulo jest podstawowym narzędziem do testowania podzielności w informatyce.

Jaka jest różnica między modem a resztą?

Dla liczb dodatnich mod i reszta są identyczne. Dla liczb ujemnych różnią się: matematyczny moduł zawsze zwraca wynik nieujemny (znak następuje po dzielniku), podczas gdy reszta bierze znak dywidendy. Na przykład, -7 mod 3 = 2 (matematyka), ale -7 reszta 3 = -1 (jak w C, Java, JavaScript).

Co to jest 10 mod 3?

10 mod 3 = 1. Ponieważ 10 = 3x3 + 1, reszta wynosi 1. Możesz sprawdzić: 3x3 = 9, a 10 - 9 = 1. Oznacza to, że 10 pozostawia resztę 1 kiedy dzieli się przez 3, więc 10 nie jest podzielne przez 3.

Co to jest 0 mod 5?

0 mod 5 = 0. dzielenie zera przez dowolną liczbę niezerową daje dzielnik 0 i resztę 0.

Jak modulo jest używane w programowaniu?

Powszechne zastosowania programowania obejmują: sprawdzenie parzystego/nieregularnego (n%2==0), zawijanie indeksów tablic (index%length), wdrażanie buforów pierścieniowych, dystrybucję elementów do wiaderek w tabelach hashowych (hash%size), obrót przez stany w maszynie stanu i zapewnienie okresowego uruchamiania zdarzeń przy każdej n-tej iteracji (licznik%n==0).

Co to jest arytmetyka zegarowa?

Arytmetyka zegarowa jest codzienną aritmetyką modułową. 12-godzinny zegar używa mod 12: 11 + 3 godziny = (11 + 3) mod 12 = 2 godziny.

Dlaczego modulo jest ważne w kryptografii?

Arytmetyka modułowa umożliwia funkcje jednokierunkowe. Obliczanie g^a mod p (g, a, p) jest szybkie, ale znalezienie danego g^a mod p i p (problem dyskretnego logarytmu) jest obliczeniowo niemożliwe dla dużych liczb pierwszych.

Jaki jest wynik dowolnej liczby mod 1?

Każda liczba całkowita mod 1 = 0. Podzielenie przez 1 zawsze nie pozostawia resztki - każda liczba całkowita jest całkowicie podzielna przez 1.

Modulo w życiu codziennym: Praktyczne przykłady

Arytmetyka modułowa pojawia się znacznie częściej w życiu codziennym, niż większość ludzi sobie uświadamia. W chwili, gdy odczytujesz zegar, obliczasz, kiedy powtarza się wydarzenie tygodniowe, sprawdzasz, czy liczba jest podzielna przez 9, lub patrzysz na ostatnią cyfrę roku, aby ustalić, w którym dniu tygodnia przypada rocznica, wykonujesz arytmetykę modułową - nawet jeśli nie używasz tej nazwy.

Planowanie i powtarzalność:Jeśli zdarzenie występuje co 7 dni i dzisiaj jest wtorek (dzień 2, zerowy indeks od niedzieli=0), to 30 dni od teraz to (2+30) mod 7 = 32 mod 7 = 4, czyli czwartek.

Cyfry kontrolne:Standardowy kod kreskowy ISBN-13 używa modulo 10. Ostatnia cyfra każdego ISBN-13 jest wybrana tak, że ważona suma wszystkich 13 cyfr jest podzielna przez 10. Jeśli wpiszesz jedną cyfrę podczas wprowadzania ISBN książki, sprawdzenie się nie powiedzie (mod 10 ≠ 0) i zostanie wyświetlony błąd. Numery kart kredytowych używają algorytmu Luhna - kontroli mod-10 - w tym samym celu. Standard ISBN-10 używa mod 11, umożliwiając wykrycie pojedynczych transpozycji.

Pamięć i adresy komputera:RAM jest zazwyczaj adresowany w potęgach 2 (1024, 2048, 4096 bajtów na stronę). Gdy program uzyskuje dostęp do pamięci, system operacyjny używa modułu do obliczenia, do której strony pamięci należy adres: page_number = address mod page_size. Wybór linii pamięci podręcznej w pamięci podręcznej CPU używa modułu w podobny sposób. Buffer wrap-around w przetwarzaniu dźwięku, kolejce pakietów sieciowych i strumieniowaniu wideo wszystkie używają matematyki bufora okrągłego: write_position = (write_position + 1) % buffer_size.

Wzorce artystyczne i muzyczne:Wzorce rytmiczne w teorii muzyki są analizowane przy użyciu arytmetyki modułowej. Podpis czasowy 4/4 ma uderzenia 0, 1, 2, 3 powtarzające się - cykl mod-4. Polirytmy występują, gdy dwa niezależne rytmy z okresami m i n grają jednocześnie; synchronizują każdy uderzenie lcmm, n). Wzorce wizualne, takie jak tessellacje płytek, powtarzają się z okresami modułowymi w dwóch wymiarach.

Obliczenia geograficzne i strefy czasowej:Wartość uzyskana może wydawać się nieintuicyjna (np. 23 + 5 = 28, mod 24 = 4, co oznacza 4:00 rano następnego dnia), ale operacja mod prawidłowo obsługuje granicę północy. Międzynarodowe przekraczania linii daty używają mod 24 w połączeniu z obliczeniami dni tygodnia za pomocą mod 7.

Zrozumienie modułu sprawia, że codzienne obliczenia są wyraźniejsze, szybsze i mniej podatne na błędy. Gdy zobaczysz wzór, zauważysz arytmetykę modułową w optymalizacji kompilatora, algorytmy rotacji w grach wideo, planowanie turniejów w rundzie i równoważenie obciążenia w klastrach serwerów - wszystko opiera się na prostej, ale potężnej koncepcji resztki po podziale.