diophantine equation, Study notes of Mathematics

dnihdhodhodoahdoshdosochsocsdihizkhcilshcli

Typology: Study notes

2024/2025

Uploaded on 01/21/2025

my-kiera
my-kiera 🇭🇰

2 documents

1 / 21

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Trường THPT Chuyên Lê Quý Đôn
Tiu lun toán
PHƯƠNG TRÌNH
DIOPHANTINE
11T
Nguyn Th Ngc Hân
Dip Trn Khánh My
Nguyn Ngc Anh
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Partial preview of the text

Download diophantine equation and more Study notes Mathematics in PDF only on Docsity!

Trường THPT Chuyên Lê Quý Đôn

Tiểu luận toán

PHƯƠNG TRÌNH

DIOPHANTINE

11T

Nguyễn Thị Ngọc Hân

Diệp Trần Khánh My

Nguyễn Ngọc Anh

Lời nói đầu

Phương trình Diophantine được đặt tên theo nhà Toán học người Hy Lạp Diophantus,

người được mệnh danh là "Cha đẻ của ngành đại số" với tác phẩm nổi tiếng nhất là

Arithmetica về giải phương trình đại số và lý thuyết số. Các phương trình trong

Arithmetica hiện được gọi là phương trình Diophantine. Phương pháp giải các phương

trình này được gọi là phân tích Diophantine.

Công trình của Diophantine được tiếp tục bởi các nhà Toán học người Trung Quốc, Ả

rập và đươc phát triển bởi các nhà Toán học như Fermat, Euler, Lagrange, Gauss,... Thông

qua việc giải các phương trình Diophantine các nhà Toán học đã tìm ra được nhiều tính

chất sâu sắc của số nguyên, số hữu tỉ, đại số. Giải phương trình Diophantine đã dẫn đến sự

ra đời của Liên phân số, Lí thuyết đường cong elliptic, thặng dư bình phương, số học

modular,...

Trong các kì thi học sinh giỏi quốc gia và quốc tế, các bài Toán về phương trình

Diophantine thường xuất hiện dưới các hình thức khác nhau và được đánh giá là khó do

tính không mẫu mực của nó.

Mục đích của cuốn tiểu luận này là cung cấp một số kiến thức về phương trình

Diophantine cũng như là một số phương pháp giải.

Cuốn tiểu luận này được lên ý tưởng và làm trong thời gian ngắn cùng với một khả

năng hạn hẹp thì trong tài liệu vẫn còn nhiều sai sót khó tránh khỏi. Mong thầy và các bạn

thông cảm và góp ý để bài tiểu luận trở nên hoàn chỉnh hơn!

I. Một số phương trình Diophantine cổ điển

Phương trình Diophantine là phương trình đại số có nhiều ẩn số và hệ số nguyên

1

2

𝑛

Để hiểu rõ hơn về các định nghĩa cũng như định lí về phương trình Diophantine thì chúng ta cùng

đến với các phương trình cụ thể.

1. Phương trình Diophantine bậc nhất

  • Định nghĩa: phương trình Diophantine bậc nhất là phương trình có dạng

Trong đó 𝑎, 𝑏, 𝑐 là các số nguyên khác 0 cho trước.

Ví dụ 1. 4 𝑥 + 8 𝑦 = 32 là một phương trình Diophantine bậc nhất

Định lí dưới đây sẽ cho chúng ta biết các điều kiện của 𝑎, 𝑏, 𝑐 để phương trình (*) có nghiệm nguyên

Định lí 1: Phương trình (*) có nghiệm nguyên khi và chỉ khi (𝑎, 𝑏) là ước của 𝑐.

Chứng minh:

Chiều thuận: Dễ thấy 𝑐 chia hết cho (𝑎, 𝑏)

Chiều nghịch:

Gọi 𝑑 là ước chung lớn nhất của 𝑎, 𝑏

Đặt: 𝑎 = 𝑑𝑎

1

1

1

1

1

Phương trình (*) trở thành: 𝑎

1

1

1

1

1

Xét 𝑎

1

và 𝑏

1

𝑦 với 𝑦 ∈ { 0 , 1 , 2 , 3 , … , 𝑎

1

Ta thấy 𝑎

1

số 𝑏

1

𝑦 khi chia 𝑎

1

sẽ có số dư khác nhau là 0 , 1 , 2 , … , 𝑎

1

− 1 và 𝑐

1

chia 𝑎

1

sẽ có một

trong các số dư là 0 , 1 , 2 , … , 𝑎

1

− 1 nên luôn tồn tại 𝑦 ∈ { 0 , 1 , 2 , 3 , … , 𝑎

1

− 1 } sao cho

1

1

1

Suy ra luôn tồn tại 𝑥, 𝑦 ∈ ℤ sao cho 𝑏

1

1

1

Vậy phương trình (*) có nghiệm khi và chỉ khi (𝑎, 𝑏) là ước của 𝑐.

* Câu hỏi đặt ra là phương trình Diophantine có bao nhiêu nghiệm và có được xác định bởi một quy

luật nào đó không? Hay chỉ là một cặp (𝑥, 𝑦) bất kì. Định lí 2 sẽ giải đáp thắc mắc của chúng ta

Định lí 2: Nếu phương trình (*) có một nghiệm nguyên (𝑥

0

0

) thì nó có vô số nghiệm và nghiệm

nguyên (𝑥, 𝑦) của nó được xác định bởi công thức

0

𝑏

𝑑

0

𝑎

𝑑

Chứng minh:

Giả sử phương trình (*) có nghiệm nguyên (𝑥

0

0

Đặt: 𝑎 = 𝑑𝑎

1

1

1

1

Ta có: 𝑎𝑥 + 𝑏𝑦 = 𝑐 = 𝑎𝑥

0

0

0

0

𝑥−𝑥

0

𝑏

𝑦−𝑦

0

𝑎

𝑥−𝑥 0

𝑏 1

𝑦−𝑦 0

𝑎 1

0

1

0

1

Thử lại ta thấy thỏa mãn.

Ví dụ 2: Giải phương trình nghiệm nguyên:

Giải:

Ta có:

= 1 và

0

0

= ( 2 , 1 ) là một nghiệm của phương trình.

Vậy nghiệm của phương trình đã cho là: {

*Tuy nhiên nếu trong trường hợp (𝑥

0

0

) rất lớn mà ta không thể nhẩm nghiệm được thì sao? Để

biết được cách tìm (𝑥 0

0

) thì ta cùng nhau đến với ví dụ sau đây

Ví dụ 3: Giải phương trình nghiệm nguyên:

Đến với bài này thì việc nhẩm nghiệm trở nên rất khó khăn. Vậy ta sẽ nhớ đến một kiến thức là định

lí Bezout:

“Nếu 𝑑 là ước số chung lớn nhất của hai số nguyên 𝑎, 𝑏 thì luôn tồn tại hai số nguyên 𝑥 và 𝑦 sao cho

Áp dụng vào giải bài toán:

Vì (a,b)=1 nên theo định lí Bezout, tồn tại hai số nguyên u, v sao cho: N = au + bv

Mặt khác u = b q. + r với

0  r  b − 1

nên ta có

N = a b q (. + r ) + bv = a r. + b v ( + a q. )

Chọn

x = r y , = v + a q.

ta được

N = a x. + by với

0  xb − 1 .

  • Chứng minh tính duy nhất

Giả sử tồn tại hai bộ

( ; x y )

( x ; y )

thoả 0 x x , b

  và

N = ax + by = ax  + by

Hay a x ( x ) b y ( y )

Do ( , a b ) = 1 nên từ (1) ta suy ra b | x x

Lại có 0  x x ,  b − 1 nên suy ra x x

= và

y y

Vậy bài toán được chứng minh.

Ví dụ 3. Cho a,b là các số nguyên dương nguyên tố cùng nhau. Chứng minh rằng

0

N = ab − a − b

là số nguyên lớn nhất không biểu diễn được dưới dạng ax + by với x, y là

các số nguyên không âm.

Để giải quyết bài toán, cần thực hiện hai bước sau

Bước 1. Chứng minh N

0

không biểu diễn được dưới dạng ax + by với x, y là số nguyên không

âm.

Giả sử tồn tại hai số nguyên không âm x, y sao cho

0

a x. + by = N

Hay

a x ( + 1) + b y ( + 1)= ab

Vì (a,b)= 1 nên từ (2.4) suy ra

x + 1 b

hay

x + 1  b

. Tương tự

y + 1  a .

Khi đó a x. + bya b ( − 1) + b a ( − 1) = 2 abababab

Điều này dẫn đến mâu thuẫn.

Do vậy N 0 không biểu diễn được dưới dạng ax + by với x y ,  N.

Bước 2. Chứng minh với mọi số nguyên N > N 0

thì N biểu diễn được dưới dạng ax + by với

x y ,  N

Theo kết quả ví dụ 2. ta suy ra: tồn tại duy nhất cặp (x,y) để

N = ax + by với

0  x  b

Ta chỉ cần chứng minh y  0. Thật vậy

N ax ab a b a b

y

b b

Mà y là số nguyên nên ta có y  0.

Vậy bài toán được chứng minh.

  • Bài toán trên được gọi là định lí Sylvester
  • Định lí Sylvester là một kết quả cho trường hợp riêng của bài toán tổng quát sau được gọi là

bài toán Frobenius về những đồng xu. Bài toán đó được phát như sau:

Cho các số nguyên dương a

1

; a

2

; · · · ; a

n

có gcd(a

1

; a

2

; · · · ; a

n

) = 1. Tìm số nguyên lớn nhất

không biểu diễn dưới dạng

1 1 2 2

n n

k a + k a + + k a với

1 2

n

k k k là các số nguyên không âm.

Số nguyên lớn nhất này được gọi là số Frobenius và thường được kí hiệu là

1 2

n

g a a a

Ví dụ 4. (IMO 1983). Cho các số nguyên dương a, b, a đôi một nguyên tố cùng nhau. Chứng

minh rằng

0

N = 2 abc − ab − bc − ca là số nguyên nhỏ nhất không biểu diễn được dưới dạng

abx + bcy + caz với x, y, z là các số nguyên không âm.

Bước 1. Chứng minh N 0 không biểu diễn được qua

abx + bcy + caz

. Chứng minh điều này

tương tự chứng minh định lý Sylvester.

Bước 2. Chứng minh với mọi số nguyên dương N > N

O

thì N luôn biểu diễn được dưới dạng

abx + bcy + caz

Vì ( a; bc)=1 nên tồn tại u,y sao cho au+bcy = N với

0  y  a − 1

Tương tự, tồn tại v, z sao cho N = vb+zac với 0  z  b − 1

Từ đó, suy ra

bcy + caz − N ab

. Hay tồn tại số nguyên x sao cho abx+bcy+caz = N

Ta chỉ cần chứng minh

x  0

. Thật vậy

N bcy caz abc ab bc ca bc a ca b

x

ab ab

Suy ra x  0. Bài toán được chứng minh.

  • Một dạng đơn giản hơn của (2) khi 𝑛

0

= 1 là:

0

0

− 1

𝑘

𝑞

1

1

𝑘

𝑟𝑚

𝑝

1

2

2

𝑟𝑚

𝑝

2 , … , 𝑥

𝑘

𝑘

𝑘

𝑟𝑚

𝑝

𝑘

Ví dụ 1. Tìm tất cả các nghiệm nguyên dương của phương trình:

𝑝

𝑝

𝑛𝑝+ 1

Với 𝑝, 𝑛 là các số nguyên dương cho trước.

Giải:

Thay đổi (𝑥, 𝑦, 𝑧) thành (𝑥

0

1

2

) phương trình đưa về: 𝑥

0

𝑛𝑝+ 1

1

𝑝

2

𝑝

= 0. Lúc này phương

trình trở thành phương trình (1).

Ta có: 𝑎 0

1

2

= − 1 và

0

= 1. Nên tồn tại vô số các số nguyên dương q

và r sao cho:

Ta lại thấy đây là phương trình Diophantine bậc nhất với hai ẩn là 𝑞 và 𝑟

Do đó, 𝑞 = 𝑝𝑡 + 1 và 𝑟 = (𝑛𝑝 + 1 )𝑡 + 𝑛 với t là số nguyên dương bất kì.

Sử dụng công thức (3) ta có nghiệm nguyên :

0

1

𝑝

2

𝑝

𝑝𝑡+ 1

1

1

1

𝑝

2

𝑝

(𝑛𝑝+ 1 )𝑡+𝑛

2

2

1

𝑝

2

𝑝

(𝑛𝑝+ 1 )𝑡+𝑛

1

2

Ví dụ 2. Tìm nghiệm tổng quát của phương trình 𝑥

2

2

2

trong tập hợp các số nguyên dương.

Giải: Để giải bài toán này thì ta xét định lí sau:

  • Định lí: mọi nghiệm nguyên dương của phương trình 𝑥

2

2

2

đều có thể viết dưới dạng

2

2

2

2

)𝑘 hoặc 𝑥 = 2 𝑚𝑛𝑘, 𝑦 = (𝑚

2

2

2

2

𝑘, trong đó các số nguyên 𝑚, 𝑛, 𝑘 thỏa mãn các điều kiện sau:

2) Các số 𝑚, 𝑛 khác tính chẵn lẻ

Ta sử dụng bổ đề sau để chứng minh:

Cho 𝑛 > 1 là số nguyên dương. Nếu 𝑎, 𝑏, 𝑐 là các số nguyên thỏa mãn điều kiện 𝑎. 𝑏 = 𝑐

𝑛

và (𝑎, 𝑏) = 1 thì tồn tại số hai số nguyên 𝑎

, 𝑏′ sao cho 𝑎 = (𝑎

𝑛

𝑛

thỏa:

1) Nếu 𝑎 hữu tỉ và 𝑎

𝑛

nguyên với 𝑛 nguyên dương nào đó thì 𝑎 nguyên

2) Nếu 𝑎 nguyên và

𝑛

hữu tỉ thì √

𝑛

nguyên

Chứng minh:

Giả sử

Đặt: 𝑥 = 𝑘𝑎 , 𝑦 = 𝑘𝑏, 𝑎, 𝑏 ∈ ℤ

Thay vào phương trình 𝑥

2

2

2

ta có:

2

2

2

2

2

𝑧

𝑘

2

𝑧

𝑘

Đặt: 𝑐 =

𝑧

𝑘

Do 𝑎

2

2

2

2

2

= 1. Áp dụng bổ đề trên ta suy ra 𝑐 =

𝑧

𝑘

Vì (𝑎, 𝑏) = 1 nên ít nhất một trong hai số 𝑎, 𝑏 là số lẻ

Nếu 𝑎, 𝑏 đều lẻ thì 𝑎

2

2

chia 4 dư 2 nên 𝑐

2

chia 4 dư 2 (vô lí). Do đó, giả sử a chẵn, b lẻ, ta có:

2

𝑎

2

2

𝑐−𝑏

2

𝑐+𝑏

2

Dễ dàng kiểm tra được

𝑐−𝑏

2

𝑐+𝑏

2

nguyên tố cùng nhau nên theo bổ đề trên tồn tại hai số nguyên

𝑚, 𝑛 thỏa

𝑐−𝑏

2

2

𝑐+𝑏

2

2

2

2

Vậy 𝑧 = (𝑚

2

2

2

2

)𝑘 với 𝑘 = (𝑥, 𝑦), 𝑥, 𝑦, 𝑧 ∈ ℤ

Nhận xét: phương trình trên còn được gọi là phương trình Pythagore. Mỗi bộ số nguyên dương

được gọi là một bộ Pythagore. Bộ Pythagore mà

= 1 được gọi là bộ Pythagore

nguyên thủy.

III. Phương pháp lùi vô hạn

Phương pháp lùi vô hạn thường được áp dụng để chứng minh mệnh đề P(n) sai với n đủ lớn như

sau:

Cho k là số tự nhiên. Ta có:

  • P (k) không đúng.

d x d x

d p d p p

Gọi p 1

là ước nguyên tố của d, khi đó

1

p | x

1

pp

Tương tự ta xây dựng được dãy vô hạn các số nguyên tố

1 2

ppp ...đều là ước của x. Điều này

vô lí vì x có hữu hạn ước nguyên tố.

Ví dụ 3. Chứng minh rằng phương trình

2 2 2

x + y + z = 2 xyz không có nghiệm nguyên dương.

Dễ thấy nếu một trong ba số x, y, z bằng 0 thì hai số còn lại cũng bằng 0 nên ( x, y, z )=(0,0,0) là một

nghiệm nguyên của (1).

Xét xyz  0 , ta sẽ chứng minh (1) vô nghiệm nguyên.

Thật vậy, giả sử trái lại, tức là phương trình (1) có nghiệm nguyên

0 0 0

( x , y , z )với

0 0 0

x , y , z  0.

Theo nguyên tắc cực hạn, tồn tại nghiệm

0 0 0

( x , y , z ) của (1) thoả mãn

0

x nhỏ nhất.

Nếu trong ba số không có số nào chãn thì VT 1(mod 2), mà VP 2 (vô lý).

Nếu trong ba số có ít nhất một số chẵn, giả sử

2 2

0 0 0

z 2  x + y  0 ( mod 4), suy ra

0 0

x , y đều chẵn.

Do đó, cả ba số

0 0 0

x , y , z đều chẵn.

Đặt 0 1 0 1 0 1

x = 2 x , y = 2 y , z = 2 z

1 1 1

( x , y , z  )

, khi đó

2 2 2 2 2 2

1 1 1 1 1 1 1 1 1 1 1 1

(1)  4 x + 4 y + 4 z = 16 x y z  x + y + z = 4 x y z

Nếu cả ba số

1 1 1

x , y , z đều lẻ thì VT lẻ trong khi VP chẵn ( vô lí ). Vậy phải có ít nhất một số là số

chẵn.

Giả sử

2 2

1 1 1 1 1

z 2  x + y  0(mod 4) → x , y

đều chẵn→

1 1 1

x , y , z

đều chia hết cho 2

Từ đó suy ra

0 0 0

x , y , z chia hết cho

2

Lặp lại quá trình trên suy ra

0 0 0

x , y , z chia hết cho 2

k

, với k là số nguyên dương bất kì. Mà

0

x cố định,

trong khi

lim 2

k

k →+

nên chỉ có thể

0

x = 0

, mâu thẫn với trường hợp đang xét xyz  0.

Vậy phương trình có nghiệm duy nhất

0 0 0

( x , y , z )=(0,0,0)

Ví dụ 4. (VMO 1999). Cho dãy số

1

n n

x

+

=

1

n n

y

+

=

được xác định như sau:

0 1 2 1

0 1 2 1

n n n

n n n

x x x x x n

y y y y y n

a) Chứng minh rằng

2 2

n n

xy = với n = 0; 1; 2;….

b) Giả sử a,b là các số nguyên dương mà

2 2

a − 5 b + 4 = 0. Chứng minh tồn tại số tự nhiên k sao

cho

k k

x = a y = b

a) Ta dễ dàng chứng minh được công thức sau theo quy nạp

1

1

n n n

n n n

x x y

y x y

Từ đó, ta lại chứng minh công thức

2 2

n n

xy + = theo quy nạp. (1)

Với n = 0 thì 1 – 5 + 4 = 0 , suy ra (1) đúng.

Giả sử (1) đúng với n = k. Ta chứng minh (1) đúng với n = k+

2 2

2 2 2 2

1 1

n n k k k k k k

x y x y x y x y

đúng.

Do đó (1) đúng (đpcm)

b) Xét phương trình

2 2

x − 5 y + 4 = 0 (2)

Gọi

0 0

( a ; b )

là một nghiệm nguyên dương bất kì của (2). Thay vào (2) ta có

2 2

0 0

a − 5 b + 4 = 0

Dựa vào a), ta đặt

0 0

0 1 1 1

0 0

0 1 1

1

a b

a a b a

b a

b a b

b

Bây giờ ta tìm điều kiện

1 1

a , b là các số nguyên dương.

2 2 2 2

0 0 0 0 0 0

a − 5 b + 4 = 0  ab (mod 4)  a , b khác tính chẵn lẻ nên

1 1

a , b .

2 2 2

0 0 0 0 0 1

a = 5 b − 4  9 b  a  3 b  b  0

Để

2

2 2 2 2

1 0 0 0 0 0 0 0 0

a a b a b a a a a

Xét p, q ≠ 3. Khi đó p

3

≡ ±1 (mod 3) và q

5

≡ ±1 (mod 3).

Nếu p ≡ q (mod 3) thì p

3

− q

5

≡ 0 (mod 3) và p + q ≡ ±1 (mod 3). Điều này dẫn tới vô lí.

Do đó, trong hai số p, q có ít nhất một số bằng 3.

  • p = 3 ta có

8 − q

5

= (3 + q)

2

 q

5

  • q

2

  • 6q + 1 = 0.

Phương trình này vô nghiệm.

  • q = 3 ta có

p

3

− 243 = (p + 3)

2

 p

3

− p

2

− 6p − 252 = 0  p = 7.

Vậy (p; q) = (7; 3) là cặp nghiệm cần tìm.

Ví dụ 2. Tìm tất cả các số nguyên tố p sao cho tồn tại các số nguyên x, y thoả mãn

2

2

2

Lời giải.

Từ đề bài ta có p > 2 và

x

2

≡ y

2

(mod p) ) => x ≡ ±y (mod p).

Mà x < y < p nên ta có

x ≡ - y (mod p) ) => x + y ≡ 0 (mod p) ) => x + y = p.

Suy ra

2

2

2

  • 4 xp + 2𝑥

2

2

  • 4 xp + p + 1

2

  • 4xp + p = 0  p = 4x – 1.

Suy ra

4x = 2 𝑥

2

=>[

Vậy p = 7 là giá trị cần tìm.

Ví dụ 3 (Greek National mathematical olympiad 2016). Tìm tất cả các bộ số tự nhiên (x;y;z)

thỏa mãn

2

2

𝑧

Lời giải.

  • Nếu z = 0 ta có 𝑥

2

2

2

2

2

2

  • Xét z ≥ 1. Do 7| 2016 , 77 nên ta có

2

2

=> 7 |x, y,

hay x = 7a, y = 7b; a, b ∈ ℕ

Khi đó

2

2

𝑧− 1

2

2

) và 711

nên z - 1 = 0  z = 1. Khi đó

2

2

= 2  a = b = 1

Vậy (x; y; z) ∈ {(4; 8; 0), (8; 4; 0), (7; 7; 1)}

Ví dụ 4 (Bankan MO 2016). Tìm tất cả các số nguyên a, b, c sao cho tồn tại số tự nhiên n để

𝑛

Lời giải.

Đặt x = a – b, y = b – c, z = c – a ta có x + y + z = 0 nên 𝑥

3

3

3

= 3xyz.

Giả sử

𝑛

Với n ∈ ℕ.

Ta có

(a – b)(b – c)(c – a) = 2. 2016

𝑛

Suy ra

3

3

3

𝑛

    1. (*)

Nếu n ≥ 1 thì từ (*) ta có

Lời giải:

Ta có

3

2

3

3

2

3

2

2

3

3

2

3

3

2

3

3

2

3

3

2

3

3

2

3

Do đó, nếu (x; y) là nghiệm nguyên của phương trình đã cho thì 𝑥

2

2

≠ 0 và (y – x; - x), (x – y; -

y) cũng là nghiệm của phương trình.

Hơn nữa {

𝑣à {

đều dẫn tới x = y = 0. Do đó, nếu phương trình đã cho

có một nghiệm thì sẽ có ít nhất 3 nghiệm.

Giả sử phương trình có nghiệm (x; y) với n = 2891.

Do 2891 ≡ 2 (mod 3) nên 𝑥

3

3

≡ 2 (mod 3).

Suy ra x ≡ y ≡ 1 (mod 3) hoặc x ≡ - 1 (mod 3), y ≡ 0 (mod 3) hoặc x ≡ 0 (mod 3), y ≡ - 1 (mod 3).

Nếu x ≡ y ≡ 1 (mod 3) thì x – y ≡ 0 (mod 3), do đó nếu phương trình đã cho có nghiệm thì sẽ có một

giá trị chia hết cho 3. Giả sử x ⋮ 3, khi đó 𝑥

3

2

≡ 0 (mod 9) nên 𝑦

3

≡ 2891 ≡ 2 (mod 9).

Nhưng một số lập phương khi chia cho 9 có các số dư là 0, ±1, ±4, ±7. Do đó, dẫn đến điều vô lí.

Vậy phương trình không có nghiệm nguyên khi n = 2891.

Tài liệu

[1] Nguyễn Tất thu, Số học.

[2] Titu Andreescu, Dorin Andrica,Ion Cucurezeanu, An Introduction to Diophantine Equations.

[3] Một số đề thi HSG, VMO, IMO.

[4] Nguồn tham khảo từ Internet.