- vừa được xem lúc

Đồng dư (phần 2)

0 0 26

Người đăng: Viblo Algorithm

Theo Viblo Asia

Nghiệm của các đồng dư thức và hệ thặng dư đầy đủ

Ký hiệu f(x)f(x) là đa thức bậc nn với hệ số nguyên và mm là modulo cho trước. Tất cả các số aaf(a)0(modm)f(a) \equiv 0(\bmod m) được gọi là nghiệm của đồng dư thức

(6) f(x)0(modm)\quad f(x) \equiv 0(\bmod m) Từ Định lý 1 suy ra nếu aa là nghiệm của đồng dư thức (6) thì mọi số đồng dư với aa theo modulo mm cũng là nghiệm của (6). Do đó có thể coi lớp tất cả các số có cùng đồng dư là một nghiệm đơn của đồng dư thức. Nghiệm đơn này có thể được chọn bởi mọi số trong đó.

Mọi số nguyên là đồng dư theo modulo mm với một trong các số thuộc dãy

(7) 0,1,2,,m1\quad 0,1,2, \ldots, m-1.

Thật vậy, ký hiệu aa là số nguyên cho trước và r=am[am]r=a-m\left[\frac{a}{m}\right]. Số rr đồng dư với aa theo modulo mm. Vì t1<[t]tt-1<[t] \leq t với mọi số thực tt nên ta có am1<[am]am\frac{a}{m}-1<\left[\frac{a}{m}\right] \leq \frac{a}{m}, suy ra 0r<m0 \leq r<m. Vì vậy rr thuộc dãy (7) và do đó mọi số tự nhiên aa là đồng dư theo modulo mm với ít nhất một trong các phần tử thuộc dãy (7). Mặt khác, các phần tử thuộc (7) là các đồng dư phân biệt modulo mm nên mọi số nguyên aa đồng dư với đúng một phần tử thuộc (7). Số này gọi là số dư của aa theo modulo m\mathrm{m}.

Tất cả các số nguyên có cùng số dư rr modulo mm đều có dạng mk+rm k+r với kk là số nguyên.

Để giải đồng dư thức (6) ( f(x)f(x) là đa thức hệ số nguyên) ta chỉ cần tìm các số trong dãy (7) là nghiệm của đồng dư thức đó. Vậy (6) có thể được giải sau hữu hạn phép thử. Do đó về lý thuyết ta có thể tìm mọi nghiệm của (6)(f(x)(6)(f(x) là đa thức hệ số nguyên) hoặc chứng minh f(x)f(x) vô nghiệm.

Ví dụ

1. Giải đồng dư thức

(8)x53x2+20(mod7).(8) \quad x^{5}-3 x^{2}+2 \equiv 0(\bmod 7) .

Ta sẽ tìm xem trong các số 0,1,2,3,4,5,60,1,2,3,4,5,6 thì số nào thỏa mãn (8). Lần lượt thế 0 và 1 vào (8)(8) ta thấy 1 là nghiệm và 0 không phải nghiệm của (8). Tương tự 2 không phải nghiệm. Ta có 322(mod7)3^{2} \equiv 2(\bmod 7) suy ra 344(mod7)3^{4} \equiv 4(\bmod 7)35125(mod7)3^{5} \equiv 12 \equiv 5(\bmod 7). Do đó 353.32+253.2+21(mod7)3^{5}-3.3^{2}+2 \equiv 5-3.2+2 \equiv 1(\bmod 7) và vì vậy 3 không phải nghiệm. Với 4 ta có 4k3(mod7)4 k \equiv-3(\bmod 7) suy ra 45355(mod7)4^{5} \equiv-3^{5} \equiv-5(\bmod 7) và do đó 453.42+253.2+23(mod7)4^{5}-3.4^{2}+2 \equiv-5-3.2+2 \equiv 3(\bmod 7) nên 4 không phải nghiệm của (8). Ta có 52(mod7)5 \equiv-2(\bmod 7) suy ra 55253(mod7)5^{5} \equiv-2^{5} \equiv 3(\bmod 7)553.52+233.4+20(mod7)5^{5}-3.5^{2}+2 \equiv 3-3.4+2 \equiv 0(\bmod 7) do đó 5 là nghiệm. Ta có 61(mod7)6 \equiv-1(\bmod 7) suy ra 65362+213+25(mod7)6^{5}-3 \cdot 6^{2}+2 \equiv-1-3+2 \equiv 5(\bmod 7) nên 6 không phải nghiệm. Vậy đồng dư thức (8) có hai nghiệm là 1 và 5 . Do đó các số nguyên xx thỏa mãn (8) đều có dạng 7k+17 k+1 hoặc 7k+57 k+5 với kk là số nguyên tùy ý.

2. Giải đồng dư thức

(9)x2+x0(mod2)(9) \quad x^{2}+x \equiv 0(\bmod 2)

Ta chỉ cần kiểm tra xem (9) có đúng với 0 hoặc 1 hay không. Cả hai trường hợp đều thỏa mãn suy ra mọi số nguyên xx đều là nghiệm của (9)(9). Kết quả này cũng được suy ra từ tính chất x2x^{2}xx có cùng tính chẵn lẻ và do đó tổng của chúng luôn chẵn. Ta nói đồng dư thức đúng với mọi số nguyên.

Đây là một ví dụ cho thấy một đồng dư thức có thể luôn đúng cho dù các hệ số không phải bội số của modulo. Một ví dụ khác là đồng dư thức x3x0(mod3)x^{3}-x \equiv 0(\bmod 3). Thật vậy x3x=(x1)x(x1)x^{3}-x=(x-1) x(x-1) là tích của ba số nguyên liên tiếp nên trong đó có một số chia hết cho 3 và vì vậy tích của chúng chia hết cho 3 . Ta có x3x0(mod3)x^{3}-x \equiv 0(\bmod 3) với mọi số nguyên xx.

Do (9) luôn đúng nên đồng dư thức x2+x+10(mod2)x^{2}+x+1 \equiv 0(\bmod 2) không có nghiệm. Tương tự đồng dư thức x23(mod8)x^{2} \equiv 3(\bmod 8) cũng không có nghiệm nguyên xx vì bình phương một số lẻ chia 8 dư 1 và bình phương một số chẵn chia 8 dư 0 hoặc 4.

Kí hiệu mm là modulo cho trước, kk là số tự nhiên cho trước <m<ma1,a2,,aka_{1}, a_{2}, \ldots, a_{k} là các số nguyên không âm <m<m. Câu hỏi đặt ra là khi nào thì đồng dư thức f(x)0(modm)(f(x)f(x) \equiv 0(\bmod m)(f(x) là đa thức hệ số nguyên) có tất cả các nghiệm là a1,a2,,aka_{1}, a_{2}, \ldots, a_{k} (và các đồng dư của chúng modulo mm).

Nếu mm là số nguyên tố thì rõ ràng hàm cần tìm là f(x)=(xa1)(xa2)(xak)f(x)=\left(x-a_{1}\right)\left(x-a_{2}\right) \ldots\left(x-a_{k}\right).

Nếu m=4m=4a1,a2,,ak,k4a_{1}, a_{2}, \ldots, a_{k}, k \leq 4, là các số nguyên không âm cho trước <4<4 thì các nghiệm của đồng dư (xa1)(xa2)(xak)0(mod4)\left(x-a_{1}\right)\left(x-a_{2}\right) \ldots\left(x-a_{k}\right) \equiv 0(\bmod 4) là các số a1,a2,,aka_{1}, a_{2}, \ldots, a_{k} (và các đồng dư của chúng theo modulo 4). Tuy nhiên M.Chojnacka Pniewska đã chứng minh rằng không tồn tại đa thức f(x)=a0xn+a1xn1++an1x+anf(x)=a_{0} x^{n}+a_{1} x^{n-1}+\ldots+a_{n-1} x+a_{n}f(x)0(mod6)f(x) \equiv 0(\bmod 6) thỏa mãn với 2 và 3 nhưng không thỏa mãn với mọi số nguyên <6<6 khác. Thật vậy, giả sử f(x)f(x) có tính chất đó. Khi đó f(2)f(3)0(mod6)f(2) \equiv f(3) \equiv 0(\bmod 6) suy ra 3f(2)3f(3)0(mod6)3 f(2)-3 f(3) \equiv 0(\bmod 6). Ta có 32k2.3k0(mod6)3 \cdot 2^{k} \equiv 2.3^{k} \equiv 0(\bmod 6) với mọi k=1,2,k=1,2, \ldots nên 3f(2)3an(mod6)3 f(2) \equiv 3 a_{n}(\bmod 6)2f(3)2an(mod6)2 f(3) \equiv 2 a_{n}(\bmod 6). Do đó 3f(2)2f(3)an(mod6)3 f(2)-2 f(3) \equiv a_{n}(\bmod 6) suy ra an0(mod6)a_{n} \equiv 0(\bmod 6) nên f(0)0(mod6)f(0) \equiv 0(\bmod 6). Ta đã chứng minh đồng dư thức f(x)0(mod6)f(x) \equiv 0(\bmod 6) có nghiệm x=0x=0, mâu thuẫn với giả thiết 2 và 3 là tất cả các nghiệm.

Có thể chứng minh rằng (Sierpinski) nếu mm là hợp số 4\neq 4 thì tồn tại hai số nguyên aabb không có cùng số dư khi chia cho mm và nếu f(x)f(x) là đa thức hệ số nguyên thì đồng dư thức f(a)f(b)0(modm)f(a) \equiv f(b) \equiv 0(\bmod m) kéo theo đồng dư thức f(0)0(modm)f(0) \equiv 0(\bmod m). Từ đây suy ra nếu mm là hợp số 4\neq 4 thì tồn tại đa thức bậc hai f(x)=x2+a1x+a2f(x)=x^{2}+a_{1} x+a_{2} với hệ số nguyên mà đồng dư thức f(x)0(modm)f(x) \equiv 0(\bmod m) có nhiều hơn hai nghiệm.

Đây là một tính huống khá giống nhau giữa lý thuyết các đồng dư thức và lý thuyết các phương trình Diophante tuyến tính một biến. Thật vậy, số nguyên xx thỏa mãn đồng dư thức (6) khi và chỉ khi tồn tại số nguyên yy thỏa mãn f(x)=myf(x)=m y. Vì vậy đồng dư thức f(x)0(modm)f(x) \equiv 0(\bmod m) tương đương với phương trình Diophante f(x)my=0f(x)-m y=0.

Với những lập luận tương tự ta chứng minh được một đồng dư thức mà vế trái là một đa thức nhiều biến hệ số nguyên và vế phải là một số cho trước là giải được về lý thuyết. Chẳng hạn đối với đồng dư thức f(x,y)0(modm)f(x, y) \equiv 0(\bmod m) với f(x)f(x) là đa thức với các biến x,yx, y thì chỉ cần tìm xem trong m2m^{2} bộ số x,yx, y với xxyy nhận mọi giá trị 0,1,,m10,1, \ldots, m-1 thì bộ số nào thỏa mãn đồng dư thức đó. Các phép thử này có thể làm đon giản hơn dựa vào nhận xét nếu ac(modm)a \equiv c(\bmod m)bd(modm)b \equiv d(\bmod m) thì f(a,b)f(c,d)(modm)f(a, b) \equiv f(c, d)(\bmod m). Một ví dụ đơn giản là xét đồng dư thức x4+y41(mod5)x^{4}+y^{4} \equiv 1(\bmod 5). Tất cả các nghiệm của phương trình này là (x,y)=(0,1),(0,2)(0,3),(0,4),(1,0),(2,0),(3,0),(4,0)(x, y)=(0,1),(0,2)(0,3),(0,4),(1,0),(2,0),(3,0),(4,0). Vì vậy trong mọi nghiệm của nó có đúng một số chia hết cho 5 . Đồng dư thức x3+y3+z34(mod9)x^{3}+y^{3}+z^{3} \equiv 4(\bmod 9) vô nghiệm vì lập phương của một số nguyên thì đồng dư với 0,1,10,1,-1 theo modulo 9 và do đó tổng của ba lập phương không thể đồng dư với 4.

Tài liệu tham khảo

  1. Lý thuyết sơ cấp của các số - W. SIERPINSKI
  2. cp-algorithms.com
  3. Handbook Competitive Programming - Antti Laaksonen
  4. Competitve programming 3 - Steven Halim, Felix Halim
  5. Giải thuật và lập trình - Thầy Lê Minh Hoàng

Bình luận

Bài viết tương tự

- vừa được xem lúc

Thuật toán quay lui (Backtracking)

Quay lui là một kĩ thuật thiết kế giải thuật dựa trên đệ quy. Ý tưởng của quay lui là tìm lời giải từng bước, mỗi bước chọn một trong số các lựa chọn khả dĩ và đệ quy.

0 0 38

- vừa được xem lúc

Các thuật toán cơ bản trong AI - Phân biệt Best First Search và Uniform Cost Search (UCS)

Nếu bạn từng đọc các thuật toán trong AI (Artificial Intelligence - Trí tuệ nhân tạo), rất có thể bạn từng nghe qua về các thuật toán tìm kiếm cơ bản: UCS (thuộc chiến lược tìm kiếm mù) và Best First Search (thuộc chiến lược tìm kiếm kinh nghiệm). Khác nhau rõ từ khâu phân loại rồi, thế nhưng hai th

0 0 152

- vừa được xem lúc

Sử dụng vector trong lập trình C++ - giải bài toán lập trình muôn thủa

Chào buổi tối mọi người, hôm nay lang thang trên mạng bắt gặp bài toán quen thuộc một thời của quãng đường sinh viên IT. Đấy chính là câu số 1 trong đề thi dưới đây:.

0 0 35

- vừa được xem lúc

MÔ PHỎNG THUẬT TOÁN VƯƠNG HẠO TRONG PROLOG

. 1. Các luật suy diễn trong thuật toán Vương Hạo. Luật 1: Chuyển vế các giả thuyết và kết luận ở dạng phủ định. Ví dụ: p v q, !(r ^ s), !q, p v r -> s, !p <=> p v q, p v r, p -> s, r ^ s, q.

0 0 76

- vừa được xem lúc

A* Search Algorithm

What is A* Search Algorithm. How it works. . Explanation.

0 0 42

- vừa được xem lúc

Python: Jump Search

Search là một từ khóa khá là quen thuộc đối với chúng ta. Hiểu theo đúng nghĩa đen của nó chính là "Tìm kiếm".

0 0 35