Máy Tính Số Học Modulo là gì?
Số học modulo còn được ví von là "số học trên mặt đồng hồ": các con số sẽ quay vòng trở lại sau khi đạt đến một modulo n cố định. Công cụ này tính giá trị của biểu thức dạng (a op b) mod n, trong đó phép toán có thể là cộng, trừ, nhân, hoặc đơn giản chỉ là rút gọn một giá trị a theo modulo n. Kết quả luôn là số dư không âm nhỏ nhất, tức một số nằm trong khoảng từ 0 đến n − 1.
Cách sử dụng
Bạn nhập giá trị cho a, chọn phép toán, nhập b (sẽ bị bỏ qua nếu chọn "Chỉ lấy modulo"), rồi đặt modulo n. Máy tính sẽ tính biểu thức gốc trước, sau đó rút gọn theo modulo n. Các kết quả âm sẽ được đưa về khoảng chuẩn 0…n−1, nên \(-1 \bmod 12\) cho ra 11 chứ không phải −1.
Giải thích công thức
Mối quan hệ cốt lõi là \(r = (a \text{ op } b) \bmod n\). Vì phép lấy phần dư theo kiểu lập trình có thể cho ra số âm, nên ta dùng dạng Euclid $$r = ((x \bmod n) + n) \bmod n$$ để đảm bảo đáp án luôn không âm. Cách làm này khớp với quy ước toán học được sử dụng trong lý thuyết số, mật mã học và băm dữ liệu (hashing).
Ví dụ minh họa
Giả sử a = 17, phép toán là cộng, b = 25 và n = 12. Trước tiên tính \(17 + 25 = 42\). Sau đó \(42 \bmod 12\): vì \(42 = 3 \times 12 + 6\), nên số dư là 6. Trên mặt đồng hồ 12 giờ, cộng thêm 25 "giờ" vào lúc 17 giờ sẽ rơi vào vị trí số 6.
Câu hỏi thường gặp
"mod" nghĩa là gì? Đó là phần dư sau khi chia. \(13 \bmod 5 = 3\) vì \(13 = 2 \times 5 + 3\).
Tại sao số âm của tôi lại biến thành số dương? Vì công cụ trả về số dư không âm nhỏ nhất. Chẳng hạn \(-7 \bmod 5 = 3\), do cộng thêm 5 hai lần (\(-7 + 10 = 3\)) sẽ đưa kết quả về khoảng 0…4.
Nếu n = 1 thì sao? Mọi số nguyên đều đồng dư với 0 theo modulo 1, nên kết quả luôn là 0.