Tải bản đầy đủ (.pdf) (56 trang)

Hệ phương trình diophant tuyến tính và một số dạng toán liên quan

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (361.97 KB, 56 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG

HUỲNH TẤN ANH TUẤN

HỆ PHƯƠNG TRÌNH
DIOPHANT TUYẾN TÍNH VÀ
MỘT SỐ DẠNG TỐN LIÊN QUAN

LUẬN VĂN THẠC SĨ KHOA HỌC

Đà Nẵng - Năm 2016


BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG

HUỲNH TẤN ANH TUẤN

HỆ PHƯƠNG TRÌNH
DIOPHANT TUYẾN TÍNH VÀ
MỘT SỐ DẠNG TỐN LIÊN QUAN
Chuyên ngành: PHƯƠNG PHÁP TOÁN SƠ CẤP
Mã số: 60 46 01 13

LUẬN VĂN THẠC SĨ KHOA HỌC

Người hướng dẫn khoa học:
GS.TSKH. NGUYỄN VĂN MẬU

Đà Nẵng - Năm 2016




LỜI CAM ĐOAN
Tơi cam đoan đây là cơng trình nghiên cứu của riêng tôi.
Các số liệu, kết quả trong luận văn là trung thực. Nếu có sử dụng các tài
liệu khác thì được trích dẫn rõ ràng trong phần tài liệu tham khảo.

Đà Nẵng, tháng 6 năm 2016
Học viên

Huỳnh Tấn Anh Tuấn


MỤC LỤC

MỞ ĐẦU
1. Lí do chọn đề tài . . . . . . . . . . .
2. Mục đích nghiên cứu . . . . . . . . .
3. Đối tượng và phạm vi nghiên cứu . .
4. Phương pháp nghiên cứu . . . . . . .
5. Ý nghĩa khoa học và thực tiễn của đề
6. Cấu trúc của luận văn . . . . . . . .

. .
. .
. .
. .
tài
. .


.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.

.
.
.
.
.
.

1
1
1
1
1
1
2

CHƯƠNG 1.PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH 3
1.1. PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH TRÊN TẬP .
3
SỐ NGUYÊN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.1.1. Ước chung lớn nhất . . . . . . . . . . . . . . . . . . . .
3
1.1.2. Thuật toán Euclid mở rộng . . . . . . . . . . . . . . .
6
1.1.3. Phương trình Diophant tuyến tính . . . . . . . . . . . 10
1.2. PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH TRÊN . . . . 16
TẬP SỐ NGUYÊN DƯƠNG . . . . . . . . . . . . . . . . . . . . . 16

CHƯƠNG 2. HỆ PHƯƠNG TRÌNH DIOPHANT TUYẾN
TÍNH
2.1. HỆ PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH TRÊN TẬP
SỐ NGUYÊN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1. Dạng chuẩn Hecmit . . . . . . . . . . . . . . . . . . .
2.1.2. Ma trận đơn modula . . . . . . . . . . . . . . . . . . .
2.1.3. Hệ phương trình Diophant tuyến tính trên tập số . . .
nguyên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4. Điều kiện tồn tại nghiệm nguyên . . . . . . . . . . . .
2.1.5. Thuật toán Hecmit . . . . . . . . . . . . . . . . . . . .
2.2. HỆ PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH TRÊN . .
TẬP SỐ NGUYÊN DƯƠNG . . . . . . . . . . . . . . . . . . . . .

20
20
20
20
23
24
24
25
26
29
29


CHƯƠNG 3. MỘT SỐ DẠNG TỐN LIÊN
3.1. PHÂN THỨC CHÍNH QUY . . . . . . . . . .
3.1.1. Định nghĩa và các tính chất . . . . . .
3.1.2. Bài tập áp dụng . . . . . . . . . . . .

3.2. QUY HOẠCH TUYẾN TÍNH DIOPHANT . .

QUAN
. . . . .
. . . . .
. . . . .
. . . . .

.
.
.
.

KẾT LUẬN
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (bản sao)

.
.
.
.

.
.
.
.

.
.
.
.


37
37
37
42
47
50


1

MỞ ĐẦU
1. Lí do chọn đề tài:
Chun đề phương trình Diophant đóng vai trị rất quan trọng trong lý thuyết
Số học. Đó là chuyên đề trọng tâm xuyên suốt từ bậc tiểu học tới bậc trung học.
Nó khơng chỉ là đối tượng nghiên cứu trọng tâm của số học mà cịn là cơng cụ đắc
lực trong nhiều lĩnh vực của phương trình và các ứng dụng khác.
Trong các kỳ thi học sinh giỏi toán quốc gia, Olympic Toán khu vực và quốc
tế thì các bài tốn liên quan đến phương trình Diophant cũng hay được đề cập
và được xem như là những dạng tốn thuộc loại khó. Đặc biệt các bài tốn về hệ
phương trình Diophant khơng nằm trong chương trình chính thức của số học ở bậc
trung học phổ thông.
Dưới sự định hướng và hướng dẫn của GS.TSKH Nguyễn Văn Mậu tơi chọn
đề tài “ Hệ phương trình Diophant tuyến tính và một số dạng tốn liên quan” làm
đề tài nghiên cứu luận văn của mình để có điều kiện tìm hiểu thêm về chun đề
này.
2. Mục đích nghiên cứu:
Mục đích nghiên cứu của đề tài là hệ thống hóa chi tiết các vấn đề lý thuyết
về hệ phương trình Diophant tuyến tính và hệ thống bài tốn,bài tập liên quan để
từ đó thấy được tầm quan trọng và tính thiết thực của hệ phương trình Diophant

tuyến tính.
3. Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ phương trình Diophant, một số dạng tốn liên
quan và bài tập đặc trưng.
- Phạm vi nghiên cứu: Các tài liệu tham khảo được GS.TSKH Nguyễn Văn
Mậu định hướng.
4. Phương pháp nghiên cứu:
- Tìm, đọc, phân tích một số tài liệu về hệ phương trình Diophant và các tính
chất, bài toán liên quan.
- Làm rõ các chứng minh trong tài liệu, hệ thống kiến thức nghiên cứu.
5. Ý nghĩa khoa học và thực tiễn của đề tài:
- Hệ thống một cách khoa học những lý thuyết về hệ phương trình Diophant
và tính chất liên quan.


2

- Nêu và giải quyết các bài toán liên quan và ý nghĩa của các bài toán liên
quan trong dạy học, nghiên cứu toán học và thực tiễn cuộc sống.
- Góp phần làm một tài liệu tham khảo cho việc dạy học và bồi dưỡng học
sinh giỏi số học ở phổ thông.
6. Cấu trúc của luận văn:
Luận văn gồm phần mở đầu, ba chương, phần kết luận và danh mục tài liệu
tham khảo.
Chương 1. Phương trình Diophant tuyến tính.
Chương 2. Hệ phương trình Diophant tuyến tính.
Chương 3. Một số dạng tốn liên quan.
Luận văn được hồn thành dưới sự hướng dẫn khoa học đầy nhiệt tình,
nghiêm túc và trách nhiệm của GS.TSKH. Nguyễn Văn Mậu. Nhân dịp này tác
giả xin được bày tỏ lịng biết ơn chân thành và kính trọng sâu sắc đối với Giáo sư

- Người thầy đã truyền đạt nhiều kiến thức quý báu cùng với kinh nghiệm nghiên
cứu khoa học trong suốt thời gian tác giả theo học và nghiên cứu đề tài. Đồng
thời, tác giả cũng xin bày tỏ lòng biết ơn sâu sắc đến Phịng Đào tạo - Khoa Tốn,
Đại học Đà Nẵng; Ban lãnh đạo phòng Giáo dục và Đào tạo thành phố Đà Nẵng
và gia đình đã tạo mọi điều kiện thuận lợi, động viên tác giả trong suốt quá trình
học tập, công tác và thực hiện đề tài luận văn này.


3

CHƯƠNG 1

PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH
Chương này trình bày về thuật tốn Euclid tìm ước chung lớn nhất của các
số nguyên dương và đề cập tới phương trình Diophant tuyến tính hai hay nhiều
biến. Nêu điều kiện (cần và đủ) tồn tại nghiệm ngun và thuật tốn tìm nghiệm
ngun của phương trình. Một số bài tốn tìm nghiệm ngun dương của phương
trình Diophant tuyến tính. Nội dung của chương được tham khảo chủ yếu từ các
tài liệu [1], [4], và [6].

1.1.PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH TRÊN TẬP
SỐ NGUN
1.1.1. Ước chung lớn nhất
Ta nhắc lại khái niệm ước chung lớn nhất của hai số nguyên dương và một
số tính chất cơ bản.
Định nghĩa 1.1 ([1]). Cho hai số nguyên a, b > 0. Ta định nghĩa ước chung
lớn nhất (greatest common divisor) của a và b là số nguyên dương lớn nhất c mà
cả a và b đều chia hết cho c . Ước chung lớn nhất được kí hiệu là (a, b) = c hoặc
gcd(a, b) = c. Ta sẽ sử dụng (a, b) để chỉ ước chung lớn nhất của a và b. Ta cũng
dùng kí hiệu a|b để chỉ a là ước số của b hay b chia hết cho a .

Ví dụ, 3|15 và 5|15 có nghĩa là 3 và 5 là ước của 15 hay 15 chia hết cho 3 và 5.
Ví dụ 1.1. Hãy tìm ước chung lớn nhất của 12 và 30. Ta thấy các ước của
12 là ±1; ±2; ±3; ±4; ±6; ±12 và các ước của 30 là ±1; ±2; ±3; ±5; ±6; ±10; ±15; ±30.
Từ đó ước chung của 12 và 30 là ±1; ±2; ±3; ±6. Vì thế, ước chung lớn nhất của 12
và 30 là 6. Ta viết (12,30)=6.
Định nghĩa 1.2. Nếu ước chung lớn nhất (a, b) = 1 thì ta nói hai số ngun
dương a và b là nguyên tố cùng nhau.
Định lý 1.1. Nếu a, b ngun dương và (a, b) = d thì
Ví dụ sau minh họa cho định lí trên.

a b
d, d

= 1.

Ví dụ 1.2. Xét hai số 18 và 40. Bằng phương pháp phân tích ra thừa số ta
có 18 = 2.32 và 40 = 23 .5. Từ đó, ta tìm được ước chung lớn nhất của 18 và 40 bằng
2, tức là (18,40) = 2. Ta thấy


4

18 40
,
2 2

= (9, 20) = 1.

Định lý 1.2. Cho a, b, c là các số nguyên dương.
Khi đó (a + cb, b) = (a, b).

Ví dụ 1.3. Xét ba số theo Định lí 1.2 ta sẽ có
(70 + 12.28,28) = (70,28) hay (406,28) = (70,28).
Để kiểm tra đẳng thức này, ta cần tính (406,28) và (70,28). Ta thấy
28 = 22 .7; 70 = 2.5.7 và 406 = 2.7.29.

Từ đó suy ra (406,28) = (70,28) = 14.
Kết quả kiểm tra đúng.
Định nghĩa 1.3. Cho a và b hai số nguyên dương. Tổ hợp tuyến tính của a
và b có dạng ax + by , trong đó x, y là số nguyên.
Định lý 1.3. Cho a và b là hai số nguyên dương, c là ước số chung của a và
b thì c cũng là ước số của ma + nb với m, n là các số nguyên, nghĩa là
(c|a; c|b) ⇒ c|(ma + nb).

Ví dụ 1.4. Giả sử a = 33, b = 39 và c = 3. Ta có 33 = 3.11
và 39 = 3.13.
Vì thế, 33 và 39 chia hết cho 3. Giả sử m = 5, n = −2. Khi đó
5.33 − 2.39 = 165 − 78 = 87.

Rõ ràng 3 là ước của 87, vì 87 = 3.29.
Định lý 1.4. Cho hai số nguyên a, b > 0. Khi đó d = (a, b) là số nguyên dương
nhỏ nhất biểu diễn được dưới dạng ax + by với x, y nguyên.
Ví dụ 1.5. Giả sử a = 65 và b = 91.
Ta thấy 65 = 5.13 và 91 = 7.13. Từ đó (65,91) = 13.
Nếu chọn x = 10, y = −7, ta có
65.10 − 7.91 = 650 − 637 = 13 = (65, 91).


5

Định lý 1.5. Nếu a, b là các số nguyên dương thì tập hợp các tổ hợp tuyến

tính của a và b trùng với tập các bội nguyên của (a, b).
Ví dụ 1.6. Giả sử a = 28 ,b =63.
Ta thấy 28 = 22 .7; 63 = 32 .7. Do đó (28,63) = 7.
Với bất kì x, y ∈ Z tìm được số nguyên k nghiệm đúng phương trình 28x+63y =7k .
Tìm x và y khi k =3, tức là x, y thỏa mãn 28x+63y =7.3=21. Chia cả hai vế cho 7,
phương trình rút gọn cịn 4x+9y =3. Ta tìm được x=3 và y =−1, vì 4.3 − 9.1 = 12
− 9 = 3.
Định nghĩa 1.4. Ta mở rộng định nghĩa ước chung lớn nhất cho n số nguyên
dương với n ≥ 2. Xét n số nguyên dương. Ta định nghĩa ước chung lớn nhất của
chúng là số lớn nhất trong các ước chung của n số đó và kí hiệu là (a1 , a2 , ..., an ).
Ví dụ 1.7. Có thể thấy (3,12,15) = 3 và (5,20,45) = 5. Tuy nhiên, đôi khi
ta gặp nhiều hơn ba số nguyên dương hoặc nhiều số phức tạp mà ta không thể dễ
dàng tìm được ước chung của chúng. Trong những trường hợp đó, ta có thể dùng
định lí sau đây.
Định lý 1.6. Nếu a1 , a2 , ..., an là các số nguyên dương thì
(a1 , a2 , ..., an−1 , an ) =(a1 , a2 , ..., (an−1 , an ))

Ví dụ 1.8. Hãy tìm ước chung lớn nhất của 40,162,364,5984.
các số nguyên ra thừa số và dùng Định lí 1.6, ta thấy

Phân tích

40 = 23 .5; 162 = 2.34 ; 364 = 22 .7.13; 5984 = 25 .11.17

(40,162,364,5984) = (40,162,(364,5984))
=
=
=
=


(40,162,4)
(40,(162,4))
(40,2)
2

Bổ đề 1.1. Nếu c và d hai số nguyên dương và c = dq + r, với q và r ngun
dương thì (c, d) = (r, d).
Ví dụ 1.9. Xét đẳng thức 110 = 15.7 + 5.
Nếu phân tích đẳng thức này theo Bổ đề 1.1, ta thấy


6
c = 110,d = 15,q = 7 và r = 5.

Ta có 110 = 2.5.11 và 15 =3. 5.
Áp dụng Bổ đề 1.1, ta được (110,15) = (5,15) = 5.
1.1.2. Thuật toán Euclid mở rộng
Mục này đề cập tới thuật tốn Euclid quen thuộc để tìm ước chung lớn nhất
của hai số ngun dương. Đó là thuật tốn cực kì nhanh để tìm ước chung lớn
nhất.
Định lý 1.7 (Thuật tốn Euclid ). Để tìm ước chung lớn nhất của hai số
nguyên dương a và b ta đặt r−1 = a, r0 = b, rồi tính liên tiếp thương qi+1 và số dư
ri+1 theo ri−1 = ri qi+1 + ri+1 với i = 0,1,2,... cho tới khi gặp số dư rn+1 = 0. Khi đó,
số dư khác khơng cuối cùng rn sẽ là ước chung lớn nhất của a và b.
Chứng minh. Thuật toán thực hiện như sau:
a = b.q1 + r1 , 0 ≤ r1 ≤ b,
b = r1 .q2 + r2 , 0 ≤ r2 ≤ r1 ,
r1 = r2 .q3 + r3 , 0 ≤ r3 ≤ r2 ,
r2 = r3 .q4 + r4 , 0 ≤ r4 ≤ r3 ,
···

ri−1 = ri .qi+1 + ri+1 , 0 ≤ ri+1 ≤ ri ,
···
rn−3 = rn−2 .qn−1 + rn−1 , 0 ≤ rn−1 ≤ rn−2 ,
rn−2 = rn−1 .qn + rn , 0 ≤ rn ≤ rn−1 ,
rn−1 = rn .qn+1 + 0

Từ đó suy ra rn > 0 là ước chung lớn nhất của a và b.
Ta sẽ giải thích vì sao số dư khác khơng cuối cùng rn là ước chung lớn nhất
của a và b ?
Từ dòng cuối cho thấy rn là ước của rn−1 , do đó (rn , rn−1 ) = rn . Tiếp theo,
từ dòng trước dòng cuối cho thấy rn là ước của rn−2 , vì rn là ước của rn−1 và rn .
Theo Bổ đề 1.1 thì rn = (rn , rn−1 ) = (rn−1 , rn−2 ).
Chuyển lên dòng trước cho ta thấy rn là ước của rn−3 , vì rn là ước của rn−2
và rn−1 . Lại theo Bổ đề 1.1 rn = (rn − 1, rn−2 ) = (rn−2 , rn−3 ).
Ở dòng giữa, bằng lập luận tương tự, ta có thể thấy
rn = (rn , rn−1 ) = (rn−1 , rn−2 ) = (rn−2 , rn−3 ) = · · · = (r2 , r1 ).


7

Dòng thứ hai b = r1 .q2 + r2 nên rn là ước của b và theo Bổ đề 1.1, ta có
rn = (rn , rn−1 ) = (rn−1 , rn−2 ) = (rn−2 , rn−3 ) = · · · = (r2 , r1 ) = (r1 , b).

Cuối cùng do rn là ước của r1 và b nên từ dòng đầu a = b.q1 + r1 cho thấy rn
cũng là ước của a và theo Bổ đề 1.1, ta có
rn = (rn , rn−1 ) = (rn−1 , rn−2 ) = (rn−2 , rn−3 ) = · · · = (r2 , r1 ) = (r1 , b) = (a, b).

Đến đây, ta biết được rằng số dư khác 0 cuối cùng sẽ là ước chung lớn nhất
của a và b, nhưng bây giờ ta cần trả lời câu hỏi làm sao ta biết được ln có một
số dư bằng 0. Khi tìm thương số, ta thực hiện phép chia a = b.q + r với số dư r sẽ

ở giữa 0 và b − 1. Điều này là rõ ràng, bởi vì nếu r ≥ b thì ta có thể thêm vào một
thương q và bớt b từ r. Vì vậy số dư sẽ giảm dần:
b = r0 > r1 > r2 > · · · .

Do mọi số dư đều lớn hơn hoặc bằng 0 nên ta có dãy số ngun khơng âm
giảm dần. Cuối cùng ta có số dư bằng 0. Rõ ràng, ta sẽ gặp số dư 0 sau nhiều nhất
b lần thực hiện phép chia. Định lí được chứng minh đầy đủ.
Ví dụ 1.10. Ta minh họa thuật tốn Euclid qua việc tìm (184,546).
Lần lượt thực hiện các phép chia sau:
546 = 184.2 + 178
184 = 178.1 + 6
178 = 6.29 + 4
6 = 4.1 + 2
4 = 2.2 + 0.
Thuật toán Euclid nói rằng ước chung lớn nhất của hai số là số dư khác 0
cuối cùng. Ở ví dụ trên, số dư khác 0 cuối cùng là 2 nên (184,546) = 2.
Nếu muốn tìm được ước chung lớn nhất của nhiều hơn hai số thì ta có thể
sử dụng thuật tốn Euclid, kết hợp với Định lí 1.6.
Ví dụ 1.11. Sử dụng thuật tốn Euclid tìm (77,175,287,819,1295).
- Trước hết tìm (819,1295) bằng cách sử dụng thuật tốn Euclid. Ta có
1295 = 819.1 + 476
819 = 476.1 + 343


8

476 = 343.1 + 133
343 = 133.2 + 77
133 = 77.1 + 56
77 = 56.1 + 21

56 = 21.2 + 14
21 = 14.1 + 7
14 = 7.2 + 0
Số dư khác 0 cuối cùng là 7. Vì thế, (819,1295) = 7.
- Tiếp theo là tìm (77,175,287,7) = (77,175,(287,7)).
Ta có 287 = 7. 41+ 0. Số dư bằng 0, vì thế (287,7) = 7.
- Tiếp theo ta tìm (77,175,7) = (77,(175,7)).
Ta có 175 = 7.25 + 0, tức 175 là bội của 7 và (175,7) = 7.
- Cuối cùng, tìm (77,7) = (7.11,7) = 7.
Kết quả là:
(77,175,287,819,1295) = 7.
Ta đã biết tìm ước chung lớn nhất của hai số nguyên dương bằng thuật toán
Euclid. Giả sử
rn = (a, b) , a > b, rn−2 = rn−1 .qn + rn và rn−1 = rn .qn+1 + 0

Khi đó ta muốn viết ước chung lớn nhất của hai số nguyên dương dưới dạng
một tổ hợp tuyến tính của những số nguyên dương này, ta sử dụng quy trình sau:
Đẳng thức (a, b) = rn = rn−2 − rn−1 .qn cho thấy (a, b) là một tổ hợp tuyến tính
của rn−2 và rn−1 . Từ đẳng thức trước đó rn−3 = rn−2 .qn−1 + rn−1 suy ra
rn−1 = rn−3 − rn−2 .qn−1

Vì vậy, ta nhận được
rn = rn−2 − (rn−3 − rn−2 .qn−1 ) .qn
= rn−2 (1 + qn−1 .qn ) − qn .rn−3 .

Biểu thức cuối cho thấy rn là một tổ hợp tuyến tính của rn−2 và rn−3 .
Ta tiếp tục quá trình “biểu diễn (a, b) như tổ hợp tuyến tính của mỗi cặp số
dư” cho tới khi tìm được (a, b) như tổ hợp tuyến tính của a và b.
Với cặp số dư ri và ri−1 ta có biểu diễn (a, b) = k.ri + m.ri−1 .
Do ri = ri−2 − ri−1 .qi nên ta có



9
(a, b) = k. (ri−2 − ri−1 .qi ) + m.ri−1
= k.ri−2 + (m − k.qi ) ri−1 .

Tiếp tục cho tới dẳng thức đầu a = b.q1 + r1 , ta sẽ tìm được (a, b) như tổ hợp
tuyến tính của a và b. Định lí sau đưa ra phương pháp quy nạp để tìm (a, b) dưới
dạng một tổ hợp tuyến tính của a và b.
Định lý 1.8. Cho a, b là hai số nguyên dương. Khi đó
(a, b) = kn .a + mn .b,

với kn và mn là số hạng thứ n của dãy số được xác định theo đệ quy bởi
k−1 = 1, m−1 = 0, k0 , m0 = 1 và
ki = ki−2 − ki−1 .qi , mi = mi−2 − mi−1 .qi với i = 1, 2, ..., n

trong đó qi là thương số của phép chia trong thuật toán Euclid, khi thuật toán
được dùng để tìm ước chung lớn nhất của a và b.
Chứng minh. Dùng quy nạp, ta sẽ chứng minh rằng
ri = ki .a + mi .b, i = −1, 0, 1, ...., n

Với i = −1 thì r−1 = k−1 .a + m−1 .b = 1.a + 0.b = a.
Với i = 0 thì r0 = k0 .a + m0 .b = 0.a + 1.b = b.
Từ thuật toán Euclid ta thấy đẳng thức (1.1) đúng với i = −1, 0.
Bây giờ giả sử
ri = ki + mi .b đúng với i = −1, 0, 1, ..., p − 1.

Ở bước thứ p của thuật toán Euclid, ta biết
rp = rp−2 − rp−1 .qp (dorp−2 = rp−1 .qp + rp ).


Theo giả thiết quy nạp và theo hệ thức đệ quy trong định lí, ta có
rp = (kp−2 .a + mp−2 .b) − (kp−1 .a + mp−1 .b) .qp
= (kp−2 .a + kp−1 .qp ) .a − (mp−2 − mp−1 .qp ) .b
= kp .a + mp .b

(1.1)


10

Vậy đẳng thức (1.1) đúng với mọi i ≤ n.
Do đó (a, b) = rn , nên với i = n ta có (a, b) = rn = kn .a + mn .b.
Kết quả là ta có thể viết (a, b) như tổ hợp tuyến tính của a và b.
Định lí được chứng minh đầy đủ.
Ví dụ 1.12. Tìm số nguyên x và y sao cho 185x + 1065y = (185,1065).
Trước hết ta sử dụng thuật tốn Euclid để tìm (185,1065). Ta có
1065 = 185.5 + 140
185 = 140.1 + 45
140 = 45.3 + 5
45 = 5.9 + 0
Số dư khác 0 cuối cùng là 5, vì thế (185,1065) = 5. Bây giờ sử dụng phép
thay thế theo hướng ngược lại để tìm cách biểu diễn 5 như một tổ hợp tuyến tính
của 185 và 1065. Ta có
5 = 140 - 45.3,
= 140 - (185 - 140).3
= 4.140 - 185.3
= 4.(1065 - 185.5) - 185.3
= - 23.185 + 4.1065.
Kết luận: một nghiệm nguyên của phương trình
185x + 1065y = (185,1065) = 5.

là x = − 23, y = 4 (Kiểm tra lại: 1065.4 − 185.23 = 4260 − 4255 = 5).
1.1.3. Phương trình Diophant tuyến tính
Định nghĩa 1.5. Phương trình Diophant là phương trình đa thức với các hệ
số nguyên và nghiệm của phương trình cũng là số nguyên hoặc số tự nhiên. Phương
trình Diophant cơ bản nhất là phương trình Diophant tuyến tính.
Ví dụ phương trình ax + by = c với a, b, c ∈ Z (Z là tập hợp các số nguyên).
Định lý 1.9. Cho a, b và c là các số nguyên với a và b khơng cùng bằng 0,
Phương trình Diophant tuyến tính ax + by = c có nghiệm khi và chỉ khi d = (a, b)
là ước của c.


11

Chứng minh. (⇒)Giả sử x0 và y0 là một nghiệm. Khi đó ax0 + by0 = c. Do
d|a và d|b nên theo Định lí 1.3 ta có d |(ax0 + by0 ) , tức d là ước của c.
(⇐) Giả sử d|c. Khi đó c = d.k với k là số ngun. Theo Định lí 1.4, có thể
viết (a, b) như tổ hợp tuyến tính của a và b. Do đó, tồn tại u, v ∈ Z thỏa mãn
d = a × u + b × v . Nhân hai vế với k ta được
c = d.k = a(u.k) + b(v.k).

Chứng tỏ phương trình ax + by = c có nghiệm x = u.k, y = v.k .
Ví dụ 1.13. Tìm nghiệm của phương trình 204x + 84y = 7.
Sử dụng thuật tốn Euclid ta tìm được (204,84) = 12. Do 7 khơng chia hết
cho 12 nên theo Định lí 1.9, phương trình đã cho khơng có nghiệm ngun.
Định lý 1.10. Cho a và b là hai số nguyên không cùng bằng 0 với d = (a, b).
Phương trình ax + by = c khơng có nghiệm ngun khi c khơng chia hết cho d. Nếu
d|c thì phương trình có vô số nghiệm nguyên. Hơn nữa, nếu x = x0 , y = y0 là một
nghiệm riêng của phương trình thì mọi nghiệm của phương trình có dạng
x = x0 + db .n, y = y0 − ad .n


trong đó n là số nguyên. Biểu thức trên gọi là nghiệm tổng qt của phương trình.
Chứng minh. Theo Định lí 1.9, ta viết phương trình Diophant có nghiệm
khi và chỉ khi d|c (d là ước của c).
Để chứng minh phần hai của định lí ta giả sử x0 , y0 là một nghiệm riêng:
ax0 + by0 = c

Nếu đặt
x = x0 + db .n, y = y0 − ad .n

với n là số nguyên bất kì thì
ax + by = a(x0 + db .n) + b(y0 − ad .n) = ax0 + by0 = c

do đó x, y cũng là nghiệm. Nghiệm này nguyên, vì d là ước của cả a và b. Biểu thức
trên cho thấy phương trình vơ số nghiệm, tùy thuộc số nguyên n được chọn.
Bây giờ ta cịn phải chỉ ra rằng, mọi nghiệm có dạng nêu trên. Thật vậy, giả
sử x, y là một nghiệm bất kì, tức là x, y nguyên và nghiệm đúng ax + by = c.


12

Do ax + by = ax0 + by0 = c nên a (x − x0 ) + b (y − y0 ) = 0.
Chia hai vế cho d ta có
a
b
(x − x0 ) = − (y − y0 ) .
d
d

(1.2)


Do d là ước của a, b nên có k, p nguyên sao cho a = d.k và b = d.p. Vì thế (1.2)
trở thành k (x − x0 ) = −p (y − y0 ). Vì a, b khơng cùng bằng 0 nên có thể giả thiết
b = 0, tức p = 0. Chia hai vế của đẳng thức trên cho p ta được
k
p (x − x0 )

= −(y − y0 )

Như vậy, p là ước số của k (x − x0 ), nhưng vì k và p nguyên tố cùng nhau nên
p là ước số của x − x0 . Do đó x − x0 = p.n = b. nd với n nguyên. Từ đó
x = x0 + db n

Thế biểu thức tìm được của x − x0 vào (1.2) ta nhận được
− db (y − y0 ) = ad (x − x0 ) = ad . db .n.

Chia hai vế cho

b
d

= 0 ta thấy
−(y − y0 ) = ad .n hay y = y0 − ad .n

Định lí được chứng minh.
Ví dụ 1.14. Tìm tất cả các nghiệm nguyên của phương trình
12x + 9y = 15(a = 12, b = 9, c = 15).

Thuật toán Euclid cho ta d = (12, 9) = 3. Ta thấy d = 3 là ước của c = 15, vì
15 = 3.5(k = 5). Theo Định lí 1.9, phương trình đã cho có nghiệm. Để tìm nghiệm
riêng x0 , y0 của phương trình, áp dụng thuật tốn Euclid mở rộng, ta tìm được

3 = 12.1 − 9.1(u = 1, v = −1). Từ chứng minh phần thứ hai của Định lí 1.9 cho thấy
x0 = u.k = 5, y0 = v.k = −5

là một nghiệm riêng của phương trình (Kiểm tra ta thấy ax0 + by0 = 12.5 − 9.5 =
60 − 45 = 15 = c).
Theo Định lí 1.10, nghiệm tổng qt của phương trình đã cho có dạng
x=5+

9n
3

= 5 + 3n, y = −5 −

12n
3

= −5 − 4n ,n ∈ Z


13

Bây giờ ta mở rộng Định lí 1.10 cho trường hợp có nhiều hơn hai biến.
Định lý 1.11. Nếu a1 , a2 , ..., an là các số nguyên dương thì phương trình
a1 x1 + a2 x2 + · · · + an xn = c có nghiệm nguyên khi và chỉ khi c chia hết cho d =
(a1 , a2 , ..., an ). Thêm vào đó, nếu phương trình có nghiệm thì phương trình sẽ có vơ
số nghiệm.
Chứng minh. (⇒)Giả sử x1 , x2 , ....., xn là một nghiệm . Khi đó
a1 x1 + a2 x2 + ..... + an xn = c

Do d |a1 , d |a2 , ..., d |an , nên theo Định lí 1.3

d |(a1 x1 + a2 x2 + ..... + an xn )

tức d là ước của c hay c chia hết cho d = (a1 , a2 , ..., an ).
(⇐) Giả sử d = (a1 , a2 , ..., an ) và d|c. Ta chứng minh phương trình
a1 x 1 + a2 x 2 + · · · + an x n = c

có vơ số nghiệm ngun. Muốn thế, ta dùng phương pháp quy nạp. Định lí 1.10
cho thấy điều khẳng định này đúng với n = 2. Giả sử điều này đúng với n = k , tức
là phương trình
a1 x1 + a2 x2 + ...... + ak xk = c với d = (a1 , a2 , ..., ak ) |c

có vơ số nghiệm. Ta sẽ chỉ ra phương trình với n = k + 1 biến
a1 x1 + a2 x2 + ...... + ak xk + ak+1 xk+1 = c

với
d = (a1 , a2 , ..., ak , ak+1 ) |c

cũng có vơ số nghiệm.
Thật vậy, ta tìm cách đưa phương trình với n = k + 1 biến
a1 x1 + a2 x2 + ...... + ak xk + ak+1 xk+1 = c

với
d = (a1 , a2 , ..., ak , ak+1 ) |c


14

về phương trình Diophant tuyến tính với k biến. Giả sử c = d.p với p là số nguyên.
Theo Định lí 1.5, tập tất cả các tổ hợp tuyến tính của ak xk + ak+1 xk+1 trùng với
tập tất cả các bội nguyên của (ak , ak+1 ). Vì thế với các nghiệm nguyên xk , xk+1 và

p, phương trình Diophant tuyến tính
ak xk + ak+1 xk+1 = (ak , ak+1 ).p

có vơ số nghiệm.
Do đó phương trình được rút gọn chỉ còn k biến
a1 x1 + a2 x2 + ...... + ak−1 xk−1 + (ak , ak+1 )p = c

(1.3)

Theo Định lí 1.6
d = (a1 , a2 , ..., ak , ak+1 ) = (a1 , a2 , ..., ak−1 , (ak , ak+1 )).

Do đó nếu c chia hết cho d thì c cũng chia hết cho
(a1 , a2 , ..., ak−1 , (ak , ak+1 )).

Vì thế, theo giả thiết quy nạp, phương trình (1.3) có vơ số nghiệm (do (1.3)
cũng là phương trình Diophant tuyến tính k biến) và ta hồn thành chứng minh
định lí theo quy nạp.
Ví dụ sau đây minh họa cho định lí trên.
Ví dụ 1.15. Tìm các nghiệm ngun của phương trình
3x + 9y + 4z = 5.

Ta thấy (3,9) = 3. Phương trình đã cho trở thành
(3, 9)(x + 3y) + 4z = 5.

Nếu đặt w = x + 3y thì có thể viết 3w + 4z = 5 . Dễ dàng thấy rằng (3,4) =
1. Do 5 chia hết cho 1 vì 5 = 1.5 (k = 5). Theo Định lí 1.10, phương trình này có
vơ số nghiệm ngun. Để tìm một nghiệm riêng w0 , z0 , áp dụng thuật tốn Euclid
mở rộng, ta tìm được 1 = −3.1 + 4.1(u = −1, v = 1).
Suy ra nghiệm riêng

w0 = u.k = −5, z0 = v.k = 5.

Nghiệm tổng quát của phương trình 3w + 4z = 5 là


15
w = −5 + 4n, z = 5 − 3n, n ∈ Z .

Tiếp theo, ta tìm x và y từ phương trình
x + 3y = w hay x + 3y = −5 + 4n

với (1,3) = 1 là ước số của −5 + 4n.
Phương trình này có một nghiệm riêng là
x0 = −5 + 4n, y0 = 0

Từ đó nghiệm tổng quát là
x = x0 + 2p, y = −p(n, p ∈ Z)

tương đương
x = −5 + 4n + 3p, y = −p, z = 5 − 3n(n, p ∈ Z)

với n, p = 0, ±1, ±2, ...
- Ta có thể giải phương trình theo một cách khác ( ghép y với z ).
3x + 9y + 4z = 5 ⇔ 3x + (9, 4)(9y + 4z) = 5

Đặt t = 9y + 4z . Do (9,4) = 1 nên phương trình trở thành 3x + t = 5.
Có thể thấy một nghiệm riêng là
x0 = 1, t0 = 2

Nghiệm tổng quát là

x = 1 + s, t = 2 − 3s

Tiếp theo, ta tìm y và z từ phương trình 9y + 4z = 2 − 3s.
Do (9,4) = 1 là ước của 2 − 3s nên phương trình này có vơ số nghiệm. Để tìm
một nghiệm riêng y0 , z0 ,áp dụng thuật toán Euclid mở rộng ta tìm được
1 = 9.1 − 4.2(u = 1, v = −2).

Suy ra nghiệm riêng
y0 = 1.(2 − 3s) = 2 − 3s và z0 = −2.(2 − 3s) = −4 + 6s.

Nghiệm tổng quát của phương trình 9y + 4z = 2 − 3s là


16
y = y0 + 4m = 2 − 3s + 4m và z = z0 − 9m = −4 + 6s − 9m.

Do đó nghiệm tổng qt của phương trình 3x + 9y + 4z = 5 là
x = 1 + s, y = 2 − 3s + 4m và z = −4 + 6s − 9m.

với s, m là các số nguyên: s, m = 0, ±1, ±2, ...
- Như vậy, ta có hai hệ nghiệm với các tham số khác nhau
x = −5 + 4n + 3p, y = −p, z = 5 − 3n(n, p ∈ Z)
x = 1 + s, y = 2 − 3s + 4m, z = −4 + 6s − 9m(s, m ∈ Z)

Hãy thử tìm s, m theo n, p từ hai hệ trên. Ta xét các phương trình sau:
Với x ta có x = −5 + 4n + 3p và x = 1 + s. Từ đó
s = 4n + 3p − 6.

(1.4)


Với y ta có y = −p và y = 2 − 3s + 4m. Từ đó
3s − 4m = 2 + p.

(1.5)

Thế s = 4n + 3p − 6 xác định theo (1.4) vào (1.5) ta được
3(4n + 3p − 6) − 4m = 2 + p

suy ra
m=

−20+12n+8p
4

= 3n + 2p − 5

Đặt biểu thức của s, m theo n, p vào z = −4 + 6s − 9m ta thấy
z = −4 + 6(4n + 3p − 6) − 9(3n + 2p − 5) = 5 − 3n

Tóm lại
s = 4n + 3p − 6 và m = 3n + 2p − 5.

1.2. PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH TRÊN
TẬP SỐ NGUN DƯƠNG
Trong nhiều bài tốn thực tế người ta cần tìm nghiệm nguyên dương của
phương trình Diophant tuyến tính. Trong những bài tốn đó, cũng có thể dùng
thuật toán Euclid và thuật toán Euclid mở rộng để tìm nghiệm nguyên dương của
phương trình cần giải .



17

Ví dụ 1.16. Gerrard muốn mua một số quả bóng và đồ thể thao tặng các
em nhỏ ở bệnh viện nhân dịp quốc tế thiếu nhi 1/6. Anh có 600 đơ la. Biết giá mỗi
quả bóng là 12 đơ la và mỗi bộ đồ thể thao có giá 37 đơ la. Hỏi với số tiền hiện
có, Gerrard có thể mua được bao nhiêu quả bóng và bộ đồ thể thao ?
Ta có phương trình Diophant tuyến tính
12x + 37y = 600.

Áp dụng thuật toán Euclid ta thấy (12,37) = 1. Do 600 = 1.600 (k = 600)
nên phương trình trên có vơ số nghiệm ngun.
Để tìm một nghiệm riêng x0 , y0 , áp dụng thuật toán Euclid mở rộng, ta tìm
được biểu diễn
1 = −12.3 + 37.1(u = −3, v = 1)

Suy ra nghiệm riêng
x0 = u.k = −1800, y0 = v.k = 600

Từ đó, nghiệm tổng quát của phương trình 12x + 37y = 600 là
x = −1800 + 37n, y = 600 − 12n, n ∈ Z

Do x và y biểu thị số quả bóng và bộ đồ thể thao cần mua nên x và y phải là
số nguyên dương, nghĩa là ta có điều kiện x > 0 và y > 0.
Từ −1800 + 37n > 0 ⇒ 37n > 1800.
Chia hai vế cho 37, ta có n > 48, 6.
Từ 600 − 12n > 0 ⇒ 600 > 12n.
Chia hai vế cho 12, ta được n < 50 Vì thế n = 49.
Đặt n = 49 vào nghiệm tổng quát ta được
x = − 1800 + 37.49 = 13, y = 600 − 12.49 = 12


Vì vậy, với 600 đơ la Gerrard có thể mua 13 quả bóng và 12 bộ đồ thể thao.
Ví dụ 1.17. Giả sử có sự giảm giá đối với một số món đồ trong cửa hàng
bán đồ lưu niệm. Cụ thể, giá mỗi quả bóng giảm từ 12 đơ la xuống cịn 11 đơ la,
giá mỗi bộ đồ thể thao giảm từ 37 đơ la xuống cịn 33 đơ la. Hỏi với 600 đơ la
Gerrard có thể mua được bao nhiêu quả bóng và bộ đồ thể thao ?
Ta có phương trình Diophant tuyến tính 11x + 33y = 600. Sử dụng thuật tốn
Euclid ta tìm được (11,33) = 11. Do 11 không phải là ước của 600 (hay 600 khơng
chia hết cho 11). Vì thế phương trình trên vơ nghiệm.


18

Ví dụ 1.18. Balotelli muốn mua một vài vật ni làm cảnh. Balotelli có 115
euro và muốn chọn ít nhất một con mỗi loại. Giá bán như sau: cá 2 euro/con, chó
4 euro/con, chim 7 euro/con. Hỏi với số tiền đó Balotelli có thể mua bao nhiêu cá,
chó và chim ?
Ta lập phương trình Diophant tuyến tính
2x + 4y + 7z = 115

Với cùng một phương pháp như ở Ví dụ 1.16, ta viết
2x + (4y + 7z) = 115

Đặt 4x + 7y = v , ta có phương trình
2x + v = 115

Một nghiệm riêng:
x0 = 0, v0 = 115

Nghiệm tổng quát của phương trình:
x = n, v = 115 − 2n(n ∈ Z)


Để tìm x và y ta giải phương trình
4x + 7y = v hay 4x + 7y = 115 − 2n

Giải như trước đây, ta thấy nghiệm tổng quát của phương trình này là
y = 20 − 4n + 7k, z = 5 + 2n − 4k(n, k ∈ Z)

Biến x, y và z phải lớn hơn 0. Vì thế ta tìm giá trị của n và k sao cho
x = n > 0, y = 20 − 4n + 7k > 0, z = 5 + 2n − 4k > 0(n, k ∈ Z)

Các bất phương trình này cho thấy
n > 0, k ≤ 1, 4n − 7k < 20(n, k ∈ Z)

Ta thử tìm n và k nguyên thỏa mãn các điều kiện nêu trên.
Chẳng hạn

(1.6)


19
4n − 7k < 20 hay 7k > 4n − 20

Ta biết rằng n là số dương. Vì vậy, nếu đặt
n = 1 vào 4n − 7k < 20 ta được k ≥ −2.

Do đó, miền giá trị của k là −2 ≤ k ≤ 1. Tiếp tục quá trình này, chọn n = 2
cho cùng kết quả k ≥ −1. Với n = 3 sẽ có k ≥ −1 và nếu tiếp tục tính tốn như
thế, với n = 7 sẽ có k > 1. Kết quả này sai vì k ≤ 1. Vì vậy, miền giá trị của n cần
là 1 ≤ n ≤ 6. Và miền giá trị của k là −2 ≤ k ≤ 1.
Nếu chọn n = 3 thì có thể thấy k chỉ có thể là −1. Đặt các giá trị này vào

(1.6), ta tìm được x = 3, y = 20 − 4.3 + 7.(−1) = 1 và z = 5 + 2.3 − 4(−1) = 15. Vì
vậy, Balotelli có thể mua 3 con cá, 1 con chó và 15 con chim và anh ta phải trả
115 euro. Chọn n sao cho 1 ≤ n ≤ 6 còn k sẽ phụ thuộc n.


20

CHƯƠNG 2

HỆ PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH
Chương này nhắc lại khái niệm về dạng chuẩn Hecmit, ma trận đơn Modula
có liên quan tới việc giải hệ phương trình Diophant tuyến tính, các điều kiện cần
và đủ để hệ có nghiệm ngun, thuật tốn tìm nghiệm riêng và nghiệm tổng qt
của hệ. Một số bài tốn tìm nghiệm ngun dương của hệ phương trình Diophant
tuyến tính. Nội dung chương được tham khảo chủ yếu từ các tài liệu [1]-[6]

2.1. HỆ PHƯƠNG TRÌNH DIOPHANT TUYẾN TÍNH
TRÊN TẬP SỐ NGUN
2.1.1. Dạng chuẩn Hecmit
Định nghĩa 2.1. Một ma trận cấp m × n có hạng bằng số hàng của ma trận
được gọi là ở dạng chuẩn Hecmit nếu:
- Ma trận có dạng [BO] , trong đó B là ma trận cấp m × m có nghịch đảo;
- B có dạng tam giác dưới;
- Các phần tử đường chéo của B dương;
- Mọi phần tử khác của B không âm;
- Phần tử lớn nhất ở mỗi hàng của B là duy nhất và nằm trên đường chéo
chính của B , cịn O là ma trận khơng cấp m × (n − m).
Sau đây là một ví dụ về ma trận ở dạng chuẩn Hecmit:
2 0 0 0 0
3 4 0 0 0

1 0 3 0 0

Định nghĩa 2.2. Các phép toán sau về ma trận được gọi là phép toán cột
sơ cấp:
a) Đổi chỗ hai cột;
b) Nhân một cột với -1 (tức đổi dấu một cột);
c) Thêm một bội nguyên của một cột vào một cột khác.
Định lý 2.1 ([1]). Mọi ma trận với hệ số hữu tỉ có hạng bằng hàng của ma
trận có thể đưa về dạng chuẩn Hecmit bằng cách thực hiện các phép toán cột sơ
cấp.


×