Máy Tính Modulo (Chia Lấy Dư)

Tính a mod b — số dư khi chia a cho b — kèm thương số, phép kiểm tra q×b+r=a, và bước kiểm tra chia hết theo từng bước rõ ràng.

Loading calculator…

Cách dùng công cụ

Nhập số bị chia (a) và số chia (b). Công cụ trả về a mod b — số dư còn lại sau khi chia a cho b — cùng với thương số và một phép kiểm tra để xác nhận kết quả.

Mẹo: a mod b = 0 là cách lập trình thường dùng để kiểm tra chia hết: nó nghĩa là b chia hết a, nên a là bội của b.

Công thức lõi (đẳng thức modulo)

Mọi phép chia có dư đều thỏa một đẳng thức:

a=q×b+r,0r<ba = q \times b + r, \qquad 0 \le r < b

Trong đó qthương nguyên (số chia b "vào" được bao nhiêu lần) và rsố dư — chính số dư đó là a mod b. Thay số vào đẳng thức này cũng là cách công cụ tự kiểm tra kết quả của mình: q × b + r phải bằng lại a.

Ví dụ đầy đủ — 5 mod 2

5÷2=25 \div 2 = 211, suy ra 5mod2=15 \bmod 2 = 1.

Kiểm tra: 2×2+1=52 \times 2 + 1 = 5 ✓.

Khi số chia lớn hơn số bị chia

Nếu b > a, số chia "vào" số bị chia 0 lần: thương bằng 0 và số dư chính là a.

1mod2=1,5mod10=51 \bmod 2 = 1, \qquad 5 \bmod 10 = 5

Dùng mod để kiểm tra chia hết

x là bội của n khi và chỉ khi x mod n = 0:

  • 496mod4=0496 \bmod 4 = 0 → 496 bội của 4.
  • 226mod4=2226 \bmod 4 = 2 → 226 không là bội của 4.

Đây là cách lập trình thường dùng để kiểm tra một số có chia hết cho số khác hay không, mà không cần thực hiện phép chia đầy đủ rồi so sánh với số nguyên.

Chẵn lẻ với mod 2

Trường hợp đặc biệt phổ biến nhất là mod 2: dư 0 nghĩa là số chẵn, dư 1 nghĩa là số lẻ.

8mod2=0,7mod2=18 \bmod 2 = 0, \qquad 7 \bmod 2 = 1

(8mod2=08 \bmod 2 = 0 là số chẵn; 7mod2=17 \bmod 2 = 1 là số lẻ.)

Lưu ý về số âm

Công cụ này chỉ nhận số bị chia và số chia không âm. Khi có số âm, "mod" tách thành hai quy ước khác nhau — modulo làm tròn xuống (số dư mang dấu của số chia) và modulo làm tròn về 0 (số dư mang dấu của số bị chia) — và các ngôn ngữ lập trình không thống nhất % triển khai theo quy ước nào. Giữ cả hai số không âm giúp tránh hoàn toàn sự mập mờ này; kết quả luôn chính xác và khớp với mọi quy ước.

Modulo và số học mô-đun

a mod b luôn nằm trong khoảng từ 0 đến b − 1, nó là nền tảng của số học mô-đun (modular arithmetic) — kiểu "số học đồng hồ" dùng trong mật mã học, băm dữ liệu (hashing) và lập lịch, nơi giá trị quay vòng về 0 khi chạm tới b.

Câu hỏi thường gặp

5 mod 2 nghĩa là gì?
5 mod 2 hỏi số dư khi chia 5 cho 2. 5÷2=25 \div 2 = 211, nên 5mod2=15 \bmod 2 = 1.
Phép toán modulo là gì?
Modulo (viết là amodba \bmod b hoặc a%ba \% b) trả về số dư rr khi chia aa cho bb, với 0r<b0 \le r < b. Định nghĩa qua công thức a=q×b+ra = q \times b + r, trong đó qq là thương nguyên.
Điều gì xảy ra khi số chia lớn hơn số bị chia?
Thương bằng 0 và số dư chính là số bị chia, vì số chia không "vào" được lần nào. 1mod2=11 \bmod 2 = 15mod10=55 \bmod 10 = 5.
Làm sao dùng mod để kiểm tra chia hết?
Số xx chia hết cho nn — và xx là bội của nn — khi và chỉ khi xmodn=0x \bmod n = 0. Ví dụ 496mod4=0496 \bmod 4 = 0 nên 496 là bội của 4, còn 226mod4=2226 \bmod 4 = 2 nên 226 không phải bội của 4.
Làm sao dùng mod để kiểm tra số chẵn lẻ?
Lấy số đó mod 2. Dư 0 nghĩa là số chẵn (8mod2=08 \bmod 2 = 0); dư 1 nghĩa là số lẻ (7mod2=17 \bmod 2 = 1).
Vì sao công cụ này không nhận số âm?
Quy ước dấu của modulo với số âm khác nhau giữa các ngôn ngữ lập trình (chia làm tròn xuống và chia làm tròn về 0 cho kết quả khác nhau), nên công cụ chỉ dùng trường hợp không âm — rõ ràng và không gây nhầm lẫn.

Công cụ liên quan