Math Labs

Số học và Lý thuyết số

Đồng dư và số học modulo

Số học trong đó các số quay vòng sau khi đạt tới một môđun cố định.

Trực giácChiếc đồng hồ: những con số quay vòng

Hãy nhìn mặt đồng hồ. Sau 1212 giờ lại tới 11 giờ chứ không phải 1313 giờ: kim giờ "quay vòng" sau mỗi 1212 bước. Nếu bây giờ là 99 giờ, 88 giờ nữa không phải là "1717 giờ" mà là 55 giờ, vì 1717 và 55 chia cho 1212 có cùng số dư. Sự quay vòng quen thuộc này chính là ý tưởng đằng sau đồng dư: hai số nguyên được coi là "như nhau" nếu chúng hơn kém nhau một bội của một số cố định mm, gọi là môđun. Đồng dư cho phép ta thay các số rất lớn bằng số dư của chúng mà vẫn tính đúng — đó là cơ chế đứng sau đồng hồ, lịch, chữ số kiểm tra, bảng băm và mật mã hiện đại.

Các số dư 0 đến 11 trên đường tròn, với dây cung biểu diễn x thành 5x theo môđun 12.
Ánh xạ x↦5x mod 12x\mapsto5x\bmod12 nối mỗi số dư với đầu dây cung tương ứng. Vì gcd⁡(5,12)=1\gcd(5,12)=1, nó hoán vị cả 12 số dư; hệ số có ước chung với 12 sẽ gộp một số vị trí xuất phát.

Phổ thôngĐịnh nghĩa và tính chất cơ bản

Định nghĩa: Đồng dư theo môđun mm

Cố định một số nguyên dương mm (môđun). Hai số nguyên aa và bb được gọi là **đồng dư theo môđun mm**, ký hiệu a≡b(modm)a \equiv b \pmod{m}, khi mm chia hết hiệu của chúng: m∣(a−b)m \mid (a-b). Tương đương, aa và bb có cùng số dư khi chia cho mm. Mọi số nguyên đồng dư với một aa cố định lập thành lớp thặng dư [a]={…,a−m,a,a+m,a+2m,… }[a] = \{\dots, a-m, a, a+m, a+2m, \dots\}, và có đúng mm lớp thặng dư phân biệt, ký hiệu Z/mZ\mathbb{Z}/m\mathbb{Z}.

a≡b(modm)  ⟺  m∣(a−b)a \equiv b \pmod{m} \iff m \mid (a-b)

Ở đây a,b,ma,b,m là các số nguyên với m>0m>0; ký hiệu ∣\mid đọc là "chia hết", và (modm)\pmod m ghi rõ môđun gắn với một đồng dư. Chỉ với định nghĩa này ta đã thấy đồng dư có tính phản xạ, đối xứng và bắc cầu — một quan hệ tương đương — vì vậy việc nói tới "các lớp thặng dư theo môđun mm" như những đối tượng độc lập, gom lại thành tập Z/mZ={ [0],[1],…,[m−1] }\mathbb{Z}/m\mathbb{Z} = \{\,[0],[1],\dots,[m-1]\,\}, là hợp lý.

Z/mZ={ [0], [1], …, [m−1] }\mathbb{Z}/m\mathbb{Z} = \{\,[0],\,[1],\,\dots,\,[m-1]\,\}
Những phép toán nào tương thích với đồng dư?
Phép toánQuy tắc (nếu a≡b, c≡d(modm)a\equiv b,\ c\equiv d \pmod m)Ví dụ số (mod 1212)
Cộnga+c≡b+d(modm)a+c\equiv b+d \pmod m9+8≡21≡9(mod12)9+8\equiv 21\equiv 9 \pmod{12}
Trừa−c≡b−d(modm)a-c\equiv b-d \pmod m2−5≡−3≡9(mod12)2-5\equiv -3\equiv 9 \pmod{12}
Nhânac≡bd(modm)ac\equiv bd \pmod m5×5≡25≡1(mod12)5\times 5\equiv 25\equiv 1 \pmod{12}
Chia (giản ước cc)chỉ hợp lệ khi gcd⁡(c,m)=1\gcd(c,m)=14×2≡4×5(mod6)4\times 2\equiv 4\times 5\pmod 6 nhưng 2≢52\not\equiv 5

Đại họcCác định lý

Với môđun mm cố định: (i) a≡a(modm)a \equiv a \pmod{m} với mọi aa; (ii) a≡b(modm)  ⟹  b≡a(modm)a\equiv b \pmod m \implies b\equiv a\pmod m; (iii) a≡b, b≡c(modm)  ⟹  a≡c(modm)a\equiv b,\ b\equiv c \pmod m \implies a\equiv c \pmod m; và nếu a≡b(modm)a\equiv b \pmod m và c≡d(modm)c\equiv d\pmod m thì a+c≡b+d(modm)a+c \equiv b+d \pmod{m} và ac≡bd(modm)ac \equiv bd \pmod{m}.

Vì sao đúng?

Đây chính là điều khiến đồng dư dùng được như số học: nghĩa là ta có thể cộng, trừ, nhân trực tiếp trên số dư thay vì các số gốc rất lớn, và luôn nhận lại số dư đúng — lý do máy tính có thể kiểm tra một số thẻ 1616 chữ số hay tính 7100 mod 137^{100} \bmod 13 mà không bao giờ phải lưu một số có 100100 chữ số.

Chứng minh

Phản xạ: a−a=0a-a=0 và m∣0m\mid 0 với mọi mm, nên a≡a(modm)a\equiv a\pmod m.

Đối xứng: nếu a≡b(modm)a\equiv b\pmod m thì a−b=mka-b=mk với một số nguyên kk nào đó, suy ra b−a=m(−k)b-a=m(-k); vì −k-k cũng là số nguyên nên m∣(b−a)m\mid(b-a), tức b≡a(modm)b\equiv a\pmod m.

Bắc cầu: nếu a≡b(modm)a\equiv b\pmod m và b≡c(modm)b\equiv c\pmod m, viết a−b=mk1a-b=mk_1 và b−c=mk2b-c=mk_2. Cộng hai đẳng thức: a−c=(a−b)+(b−c)=m(k1+k2)a-c=(a-b)+(b-c)=m(k_1+k_2), nên m∣(a−c)m\mid(a-c) và a≡c(modm)a\equiv c\pmod m.

Tương thích với phép cộng: từ a−b=mk1a-b=mk_1 và c−d=mk2c-d=mk_2, cộng hai phương trình: (a+c)−(b+d)=m(k1+k2)(a+c)-(b+d) = m(k_1+k_2), là một bội của mm, nên a+c≡b+d(modm)a+c\equiv b+d\pmod m.

Tương thích với phép nhân: viết ac−bd=ac−bc+bc−bd=c(a−b)+b(c−d)=c⋅mk1+b⋅mk2=m(ck1+bk2)ac-bd = ac-bc+bc-bd = c(a-b)+b(c-d) = c\cdot mk_1 + b\cdot mk_2 = m(ck_1+bk_2). Đây lại là một bội của mm, nên ac≡bd(modm)ac\equiv bd\pmod m. Kết hợp (i)-(iii) làm cho đồng dư trở thành quan hệ tương đương, và hai bước cuối cho thấy mọi phép toán vành trên Z\mathbb{Z} đều chuyển xuống thành phép toán xác định tốt trên các lớp thặng dư Z/mZ\mathbb{Z}/m\mathbb{Z}.

Nếu gcd⁡(c,m)=1\gcd(c,m)=1, thì ac≡bc(modm), gcd⁡(c,m)=1  ⟹  a≡b(modm)ac\equiv bc \pmod m,\ \gcd(c,m)=1 \implies a\equiv b \pmod m. Tương đương, cc có nghịch đảo nhân theo môđun mm: một số nguyên uu sao cho cu≡1(modm)cu\equiv 1\pmod m.

Vì sao đúng?

"Chia" thông thường thực chất là nhân với nghịch đảo, và định lý này cho biết chính xác khi nào nghịch đảo đó tồn tại theo môđun mm: đúng khi cc không có ước chung nào với mm. Thiếu điều kiện này, phép giản ước thực sự thất bại (xem hàng cuối bảng trên), đó là lý do mọi kết quả sau này về lũy thừa theo môđun mm — định lý Fermat nhỏ, định lý Euler, định lý phần dư Trung Hoa — đều được xây trên chính sự kiện đại số duy nhất này.

Chứng minh

Vì gcd⁡(c,m)=1\gcd(c,m)=1, đẳng thức Bézout (hệ quả của thuật toán Euclid) đảm bảo ∃ u,v∈Z: cu+mv=1\exists\, u,v \in \mathbb{Z}:\ cu+mv=1: tồn tại các số nguyên u,vu,v với cu+mv=1cu+mv=1.

Nhân cả hai vế của ac≡bc(modm)ac\equiv bc\pmod m với uu: acu≡bcu(modm)acu\equiv bcu\pmod m. Thay cu=1−mvcu=1-mv: vế trái trở thành a(1−mv)=a−amva(1-mv)=a-amv, và vì amvamv là bội của mm nên a(1−mv)≡a(modm)a(1-mv)\equiv a\pmod m; tương tự vế phải b(1−mv)≡b(modm)b(1-mv)\equiv b\pmod m. Do đó a≡b(modm)a\equiv b\pmod m, chứng minh luật giản ước.

Hơn nữa, không cần lấy a=1,b=0,c=ca=1,b=0,c=c — trực tiếp, cùng phép thay thế cho cu=1−mv≡1(modm)cu = 1-mv \equiv 1 \pmod m, nên chính uu là nghịch đảo nhân của cc theo môđun mm: đây chính là đối tượng mà phát biểu định lý khẳng định sự tồn tại.

Giả thiết gcd⁡(c,m)=1\gcd(c,m)=1 là thiết yếu: lấy c=4, m=6c=4,\ m=6 (nên gcd⁡(4,6)=2≠1\gcd(4,6)=2\neq1). Khi đó 4×2=8≡2(mod6)4\times 2=8\equiv 2\pmod 6 và 4×5=20≡2(mod6)4\times 5=20\equiv 2\pmod 6, nên 4×2≡4×5(mod6)4\times2\equiv 4\times5\pmod 6, nhưng 2≢5(mod6)2\not\equiv 5\pmod 6 — luật giản ước thực sự thất bại một khi bỏ giả thiết nguyên tố cùng nhau.

Nâng caoỨng dụng thực tiễn và Ví dụ minh họa

Số học modulo là một trong những công cụ ứng dụng phổ biến âm thầm nhất trong toán học ứng dụng. Lịch dùng nó để tìm thứ trong tuần (mod 77); hệ thống mã vạch và ISBN dùng nó để bắt lỗi gõ sai bằng một chữ số kiểm tra duy nhất (mod 1111 hoặc mod 1010); bảng băm trong khoa học máy tính ánh xạ khóa vào các ngăn bằng cách lấy số dư; và mật mã kiểu RSA (sẽ trình bày sâu ở hai chủ đề tiếp theo) mã hóa và giải mã thông điệp hoàn toàn qua lũy thừa modulo. Hai ví dụ cụ thể dưới đây cho thấy lập luận hàng ngày đứng sau ứng dụng lịch và chữ số kiểm tra.

Ví dụ: Tìm thứ trong tuần

Nếu hôm nay là thứ Ba, thì 100100 ngày nữa sẽ là thứ mấy?

Lời giải

Các ngày trong tuần lặp lại với chu kỳ 77, nên chỉ số dư của 100100 khi chia cho 77 mới quan trọng: 100=7×14+2100 = 7\times 14 + 2, nên 100≡2(mod7)100 \equiv 2 \pmod 7.

Theo tính tương thích với phép cộng đã chứng minh ở trên, tiến 100100 ngày có cùng hiệu ứng theo môđun 77 như tiến chỉ 22 ngày: thứ Ba + 2+\,2 ngày là thứ Năm.

Vậy 100100 ngày kể từ thứ Ba là thứ Năm. Chú ý ta không cần đếm từng ngày trong cả 100100 ngày — đồng dư cho phép ta thu gọn một số lớn thành số dư nhỏ tương đương.

Ví dụ: Kiểm tra chữ số kiểm tra ISBN-10

Mã ISBN-10 d1d2⋯d10d_1d_2\cdots d_{10} hợp lệ khi và chỉ khi ∑i=110i di≡0(mod11)\sum_{i=1}^{10} i\, d_i \equiv 0 \pmod{11}. Kiểm tra xem 0-306-40615-20\text{-}306\text{-}40615\text{-}2 có phải ISBN-10 hợp lệ không.

Lời giải

Liệt kê các chữ số d1,…,d10=0,3,0,6,4,0,6,1,5,2d_1,\dots,d_{10} = 0,3,0,6,4,0,6,1,5,2 và lập tổng có trọng số ∑i di=1(0)+2(3)+3(0)+4(6)+5(4)+6(0)+7(6)+8(1)+9(5)+10(2)\sum i\,d_i = 1(0)+2(3)+3(0)+4(6)+5(4)+6(0)+7(6)+8(1)+9(5)+10(2).

Tính từng số hạng: 0,6,0,24,20,0,42,8,45,200,6,0,24,20,0,42,8,45,20. Cộng lại: 0+6+0+24+20+0+42+8+45+20=1650+6+0+24+20+0+42+8+45+20 = 165.

Nhờ tính tương thích với cộng và nhân của đồng dư, ta chỉ cần 165 mod 11165 \bmod 11: vì 11×15=16511\times 15 = 165, ta được 165≡0(mod11)165 \equiv 0 \pmod{11}. Kiểm tra đúng, nên 0-306-40615-20\text{-}306\text{-}40615\text{-}2 là ISBN-10 hợp lệ. Nếu gõ sai dù chỉ một chữ số, tổng có trọng số hầu như chắc chắn sẽ không còn ≡0(mod11)\equiv 0 \pmod{11}, đó chính là lý do nhà xuất bản dùng sơ đồ này để tự động bắt lỗi nhập liệu.

Nghiên cứuĐồng dư ở biên giới nghiên cứu: hệ thống thặng dư trong mật mã hiện đại

Theo quy ước chuẩn 0≤r<m0 \le r < m, −17 mod 5-17 \bmod 5 bằng bao nhiêu?

Nếu a≡4(mod9)a \equiv 4 \pmod 9 và b≡7(mod9)b \equiv 7 \pmod 9, thì ab mod 9ab \bmod 9 bằng bao nhiêu?

Nếu hôm nay là thứ Ba, thì 5050 ngày nữa là thứ mấy?

Luật giản ước ac≡bc(modm)  ⟹  a≡b(modm)ac\equiv bc \pmod m \implies a\equiv b\pmod m được đảm bảo đúng khi nào?

Tài liệu tham khảo

  1. Carl Friedrich Gauss (1801). Disquisitiones Arithmeticae
  2. Jung Hee Cheon, Andrey Kim, Miran Kim, Yongsoo Song (2017). Homomorphic Encryption for Arithmetic of Approximate Numbers · DOI:10.1007/978-3-319-70694-8_15