Giải thuật Euclid mở rộng được sử dụng để giải một phương trình vô định nguyên (còn được gọi là phương trình Đi-ô-phăng) có dạng
Trong đó là các hệ số nguyên, là các ẩn nhận giá trị nguyên. Điều kiện cần và đủ để phương trình này có nghiệm (nguyên) là là ước của . Khẳng định này dựa trên một mệnh đề sau:
''Nếu thì tồn tại các số nguyên sao cho
Cơ sở lý thuyết của giải thuật
Giải thuật Euclid mở rộng kết hợp quá trình tìm ƯCLN(a, b) trong thuật toán Euclid với việc tìm một cặp số x, y thoả mãn phương trình Đi-ô-phăng.
Giả sử cho hai số tự nhiên a, b, ngoài ra a>b>0.
Đặt , chia cho được số dư và thương số nguyên . Nếu thì dừng,
nếu khác không, chia cho được số dư ,...Vì dãy các là giảm thực sự nên sau hữu hạn bước ta được số dư .
::;
::;
::....;
::
::
trong đó số dư cuối cùng khác 0 là .
Bài toán đặt ra là tìm x, y sao cho
::
Để làm điều này, ta tìm x, y theo công thức truy hồi, nghĩa là sẽ tìm
:: và sao cho:
:: với .
Ta có
:: và , nghĩa là
:: và . (1)
Tổng quát, giả sử có
:: với .
:: với .
Khi đó từ
::
suy ra
::
::
::
từ đó, có thể chọn
:: (2)
:: (3)
Khi ta có được và .
Các công thức (1), (2), (3) là công thức truy hồi để tính x, y.
Giải thuật
{Thuật toán Euclide: a, b không đồng thời bằng 0, trả về gcd(a, b)}
function gcd(a, b);
begin
while b ≠ 0 do
begin
r:= a mod b; a:= b; b:= r;
end;
Result:= a;
end;
{Thuật toán Euclide mở rộng: a, b không đồng thời bằng 0, trả về cặp (x, y) sao cho a * x + b * y = gcd(a, b)
Về tư tưởng là ghép quá trình tính cặp số (x, y) vào trong vòng lặp chính của thuật toán Euclide.}
function Extended_gcd(a, b);
begin
(xa, ya):= (1, 0);
(xb, yb):= (0, 1);
while b ≠ 0 do
begin
q:= a div b;
r:= a mod b; a:= b; b:= r; //Đoạn này giống thuật toán Euclide.
(xr, yr):= (xa, ya) - q * (xb, yb); //Hiểu là: (xr, yr):= (xa, ya) "mod" (xb, yb);
(xa, ya):= (xb, yb);
(xb, yb):= (xr, yr);
end;
Result:= (xa, ya);
end;
Giải thuật sau chỉ thực hiện với các số nguyên a>b>0, biểu diễn bằng giải mã:
Sub Euclid_Extended(a,b)
Dim x0, x, y,y1 As Single
x0=1: x1=0: y0=0: y1=1
While b>0
r= a mod b
if r=0 then Exit While
q= a / b
x= x0-x1q
y= y0-y1q
a=b
b=r
x0=x1
x1=x
y0=y1
y1=y
Wend
Me.Print d:=b, x, y
code
End Sub
Ví dụ
Với a=29, b=8, giải thuật trải qua các bước như sau:
Kết quả thuật toán cho đồng thời
và
,
.
Dễ dàng kiểm tra hệ thức
Áp dụng giải thuật Euclid mở rộng tìm số nghịch đảo trong vành
Số nghịch đảo trong vành
Trong lý thuyết số, vành được định nghĩa là vành thương của với quan hệ đồng dư theo modulo m (là quan hệ tương đương) mà các phần tử của nó là các lớp đồng dư theo modulo m (m là số nguyên dương lớn hơn 1). Ta cũng có thể xét chỉ với các đại diện của nó. Khi đó
Phép cộng và nhân trong
là phép toán thông thường được rút gọn theo modulo m:
Phần tử a của
được gọi là khả nghịch trong
hay khả nghịch theo modulo m nếu tồn tại phần tử a' trong
sao cho a*a'=1 trong
hay
. Khi đó a' được gọi là nghịch đảo modulo m của a. Trong lý thuyết số đã chứng minh rằng, số a là khả nghịch theo modulo m khi và chỉ khi ƯCLN của a và m bằng 1.
Khi đó tồn tại các số nguyên x, y sao cho
Đẳng thức này lại chỉ ra y là nghịch đảo của a theo modulo m. Do đó có thể tìm được phần tử nghịch đảo của a theo modulo m nhờ thuật toán Euclid mở rộng khi chia m cho a.
Giải thuật
//a, m > 0. Trả về a^-1 mod m, gcd(a, m) phải bằng 1, chú ý là ta không cần quan tâm y khi giải pt diophante a * x + m * y = 1
function ModuloInverse(a, m);
begin
xa:= 1; xm:= 0;
while m ≠ 0 do
begin
q:= a div m;
xr:= xa - q * xm;
xa:= xm;
xm:= xr;
r:= a mod m;
a:= m;
m:= r;
end;
Result:= xa;
end;
Giải thuật sau chỉ thực hiện với các số nguyên m>a>0, biểu diễn bằng giã mã:
'''Procedure Euclid_Extended (a,m)
int, y0:=0,y1:=1;
While a>0 do {
r:= m mod a
if r=0 then Break
q:= m div a
y:= y0-y1*q
y0:=y1
y1:=y
m:=a
a:=r
}
If a>1 Then Return "A không khả nghịch theo mođun m"
else Return " Nghịch đảo modulo m của a là y"
Ví dụ
Tìm số nghịch đảo (nếu có) của 30 theo môđun 101
Kết quả tính toán trong bảng cho ta
. Lấy số đối của
theo mođun
được
. Vậy
.
Ứng dụng
Số nghịch đảo theo môđun được ứng dụng nhiều trong việc giải phương trình đồng dư, trong lý thuyết mật mã.
👁️
1 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Giải thuật Euclid mở rộng** được sử dụng để giải một phương trình vô định nguyên (còn được gọi là phương trình Đi-ô-phăng) có dạng
Trong đó làthumb|Thuật toán Euclid để tìm ước chung lớn nhất (ƯCLN) của hai đoạn thẳng BA và DC, độ dài của cả hai đều là bội của một "đơn vị" độ dài chung. Vì độ dài
nhỏ|Giải thuật ký số **Giải thuật ký số** (_Digital Signature Algorithm_, viết tắt _DSA_) là chuẩn của chính phủ Mỹ hoặc FIPS cho các chữ ký số. Giải thuật này được đề nghị bởi Viện
Bài viết này là **danh sách các thuật toán** cùng một mô tả ngắn cho mỗi thuật toán. ## Thuật toán tổ hợp ### Thuật toán tổ hợp tổng quát * Thuật toán Brent: tìm
phải|nhỏ|[[Lưu đồ thuật toán (thuật toán Euclid) để tính ước số chung lớn nhất (ưcln) của hai số _a_ và _b_ ở các vị trí có tên A và B. Thuật toán tiến hành bằng
Bài này nói về từ điển các chủ đề trong toán học. ## 0-9 * -0 * 0 * 6174 ## A * AES * ARCH * ARMA * Ada Lovelace * Adrien-Marie Legendre *
Trong lý thuyết số cơ bản, **bổ đề Bézout** được phát biểu thành định lý sau: Nếu là ước chung lớn nhất của hai số nguyên không âm và thì:
**Toán học của thuyết tương đối rộng** là mô hình chứa đựng cấu trúc và kỹ thuật toán học được sử dụng để nghiên cứu và thiết lập lên thuyết tương đối rộng của Einstein.
Mô phỏng dựa theo thuyết tương đối rộng về chuyển động quỹ đạo xoáy tròn và hợp nhất của hai hố đen tương tự với sự kiện [[GW150914. Minh họa hai mặt cầu đen tương
Danh sách các vấn đề mở trong toán học ## Danh sách các bài toán mở trong toán học nói chung Nhiều nha toán học và tổ chức đã xuất bản danh sách cái bài
nhỏ|Chiếc bánh pizza được cắt nhỏ; mỗi miếng bánh là chiếc bánh. **Phân số đơn vị** là phân số dương có tử số bằng 1, tức có dạng với là
Thí nghiệm kiểm tra lý thuyết tương đối tổng quát đạt độ chính xác cao nhờ tàu thăm dò không gian [[Cassini–Huygens|Cassini (ảnh minh họa): Các tín hiệu radio được gửi đi giữa Trái Đất
Trong mật mã học, **RSA** là một thuật toán mật mã hóa khóa công khai. Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc
Trong toán học, **ước số chung lớn nhất** (**ƯCLN**) hay **ước chung lớn nhất** (**ƯCLN**) của hai hay nhiều số nguyên là số nguyên dương lớn nhất là ước số chung của các số đó.
thumb|right|Chiếc đồng hồ với mô đun bằng 12 Trong toán học, **số học mô đun** là một hệ thống số học dành cho số nguyên. Trong số học mô đun, các con số được viết
Toán học trong nghệ thuật: Bản khắc trên tấm đồng mang tên _[[Melencolia I_ (1514) của Albrecht Dürer. Những yếu tố liên quan đến toán học bao gồm com-pa đại diện cho hình học, hình
**Kỹ thuật tạo lệnh** hoặc **kỹ thuật ra lệnh** (prompt engineering) là quá trình cấu trúc một **văn bản đầu vào** cho AI tạo sinh giải thích và diễn giải. Một **văn bản đầu vào**
thumb|right|Quang học nghiên cứu hiện tượng [[tán sắc của ánh sáng.]] **Quang học** là một ngành của vật lý học nghiên cứu các tính chất và hoạt động của ánh sáng, bao gồm tương tác
nhỏ|Bao lồi của tập hợp màu đỏ là [[tập lồi màu xanh và màu đỏ.]] Trong hình học, **bao lồi** của một hình là tập hợp lồi nhỏ nhất chứa hình đó. Bao lồi có
**Định lý Pythagoras**
Tổng diện tích của hai hình vuông có cạnh là hai cạnh vuông của tam giác vuông (_a_ và _b_) bằng diện tích của hình vuông có cạnh là cạnh huyền (_c_). Trong
**Leonhard Euler** ( , ; 15 tháng 4 năm 170718 tháng 9 năm 1783) là một nhà toán học, nhà vật lý học, nhà thiên văn học, nhà lý luận và kỹ sư người Thụy
thumb|Hai mặt phẳng giao nhau trong không gian ba chiều Trong toán học, _mặt phẳng_ là một mặt hai chiều phẳng kéo dài vô hạn. Một **mặt phẳng** là mô hình hai chiều tương tự
Nói chung, **toán học thuần túy** là toán học nghiên cứu các khái niệm hoàn toàn trừu tượng. Đây là một loại hoạt động toán học có thể nhận biết được từ thế kỷ 19
**Stephen William Hawking** (8 tháng 1 năm 1942 – 14 tháng 3 năm 2018) là một nhà vật lý lý thuyết, nhà vũ trụ học và tác giả người Anh, từng là giám đốc nghiên
**John Davison Rockefeller Sr.** (8 tháng 7 năm 183923 tháng 5 năm 1937) là một doanh nhân, nhà từ thiện và tỷ phú người Mỹ. Ông được coi là người Mỹ giàu có nhất mọi
thumb|alt=Structure of the Universe|Phân phối vật chất trong một không gian hình khối của vũ trụ. Các cấu trúc sợi màu xanh đại diện cho vật chất (chủ yếu là [[vật chất tối) và các
**John von Neumann** (**Neumann János**; 28 tháng 12 năm 1903 – 8 tháng 2 năm 1957) là một nhà toán học người Mỹ gốc Hungary và là một nhà bác học thông thạo nhiều lĩnh
Trong toán học, **không gian Hilbert** (Hilbert Space) là một dạng tổng quát hóa của không gian Euclid mà không bị giới hạn về vấn đề hữu hạn chiều. Đó là một không gian có
[[Đồ thị hàm sin]] [[Đồ thị hàm cos]] [[Đồ thị hàm tan]] [[Đồ thị hàm cot]] [[Đồ thị hàm sec]] [[Đồ thị hàm csc]] Trong toán học nói chung và lượng giác học nói riêng,
**Galileo di Vincenzo Bonaiuti de' Galilei** (; phiên âm tiếng Việt: **Ga-li-lê**; sinh ngày 15 tháng 2 năm 1564 – mất ngày 8 tháng 1 năm 1642), cũng thường được gọi ngắn gọn là **Galileo**, là
Trong Toán học, Vật lí và kĩ thuật, **vectơ** hay **hướng lượng** (theo phiên âm Hán Việt) (tiếng Anh: _vector_) là một đoạn thẳng có hướng. Đoạn thẳng này biểu thị phương, chiều và độ
**Các định lý bất toàn của Gödel**, hay gọi chính xác là **Các định lý về tính bất hoàn chỉnh của Gödel** (tiếng Anh: **Gödel's incompleteness theorems**, tiếng Đức: **Gödelscher Unvollständigkeitssatz**), là hai định lý
nhỏ|Biểu tượng **vô tận** **Vô hạn, vô cực, vô tận** (ký hiệu: ∞) là một khái niệm mô tả một cái gì đó mà không có bất kỳ giới hạn nào, hoặc một cái gì
phải|nhỏ|300x300px|Hệ [[Hệ tọa độ cầu|tọa độ cầu được sử dụng phổ biến trong _vật lý_ . Nó gán ba số (được gọi là tọa độ) cho mọi điểm trong không gian Euclide: khoảng cách xuyên
**Igor Rostislavovich Shafarevich** (; sinh ngày 3 tháng 6 năm 1923 – mất ngày 19 tháng 2 năm 2017) là nhà toán học Liên Xô và Nga có cống hiến cho hai nhánh lý thuyết
Trong vật lý, **không–thời gian** là một mô hình toán học kết hợp không gian ba chiều và 1 chiều thời gian để trở thành một không gian bốn chiều. Sơ đồ không–thời gian có
nhỏ|[[Tập hợp Mandelbrot, đặt tên theo người đã khám phá ra nó, là một ví dụ nổi tiếng về fractal]] nhỏ|Mandelbrot năm 2007 nhỏ|Xây dựng một bông tuyết Koch cơ bản từ tam giác đều
thế=Groups of two to twelve dots, showing that the composite numbers of dots (4, 6, 8, 9, 10, and 12) can be arranged into rectangles but the prime numbers cannot|nhỏ| Hợp số có thể được
_Cuốn [[The Compendious Book on Calculation by Completion and Balancing_]] Từ _toán học_ có nghĩa là "khoa học, tri thức hoặc học tập". Ngày nay, thuật ngữ "toán học" chỉ một bộ phận cụ thể
**Lịch sử của thuyết tương đối hẹp** bao gồm rất nhiều kết quả lý thuyết và thực nghiệm do nhiều nhà bác học khám phá như Albert Abraham Michelson, Hendrik Lorentz, Henri Poincaré và nhiều
**Niccolò Fontana Tartaglia** ( tiếng Ý: [nikkoˈlɔ ffonˈtaːna tarˈtaʎʎa] ; 1499/1500 - 13 tháng 12 năm 1557) là một nhà toán học, kỹ sư người Ý (thiết kế công sự), một nhà khảo sát
**Ghiyāth al-Dīn Abū al-Fatḥ ʿUmar ibn Ibrāhīm Nīsābūrī** (ngày 18 tháng 5 năm 1048 – ngày 4 tháng 12 năm 1131), thông thường được biết đến với tên gọi **Omar Khayyám** (),, là một nhà
**Vũ trụ** bao gồm tất cả các vật chất, năng lượng và không gian hiện có, được xem là một khối bao quát. Vũ trụ hiện tại chưa xác định được kích thước chính xác,
**David Hilbert** (23 tháng 1 năm 1862, Wehlau, Đông Phổ – 14 tháng 2 năm 1943, Göttingen, Đức) là một nhà toán học người Đức, được công nhận như là một trong những nhà toán
**Logic toán** là một ngành con của toán học có liên hệ gần gũi với cơ sở toán học, khoa học máy tính lý thuyết, logic triết học. Ngành này bao gồm hai phần: nghiên
Số **pi** (ký hiệu: ****), còn gọi là **hằng số Archimedes**, là một hằng số toán học có giá trị bằng tỷ số giữa chu vi của một đường tròn với đường kính của đường
**Christian Felix Klein** (25 tháng 4 năm 1849 – 22 tháng 6 năm 1925) là nhà toán học người Đức, được biết đến với những nghiên cứu của ông trong lý thuyết nhóm, lý thuyết
thumb|Hình mình họa cho chứng minh của Euclid về định lý Pythagoras. **Toán học Hy Lạp** là nền toán học được viết bằng tiếng Hy Lạp, phát triển từ thế kỷ 7 TCN đến thế
**Triết học toán học** là nhánh của triết học nghiên cứu các giả định, nền tảng và ý nghĩa của toán học, và các mục đích để đưa ra quan điểm về bản chất và
[[Phương trình nổi tiếng của Einstein dựng tại Berlin năm 2006.]] **Thuyết tương đối** miêu tả cấu trúc của không gian và thời gian trong một thực thể thống nhất là không thời gian cũng