✨Giải thuật Euclid

Giải thuật Euclid

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 của DC ngắn hơn nên nó được dùng để "đo" BA, nhưng chỉ được một lần do phần còn lại là đoạn EA ngắn hơn DC. Bây giờ EA lại được dùng để đo độ dài đoạn DC hai lần. Cuối cùng đoạn FC được dùng để đo độ dài đoạn EA ba lần. Vì không còn đoạn nào dư ra nên quá trình này kết thúc với FC trở thành ƯCLN. Bên phải là ví dụ của [[Nicomachus với hai số 49 và 21 có kết quả ƯCLN là 7.|thế=|417x417px]] Trong toán học, giải thuật Euclid (hay thuật toán Euclid) là một giải thuật để tính ước chung lớn nhất (ƯCLN) của hai số nguyên, là số lớn nhất có thể chia được bởi hai số nguyên đó với số dư bằng không. Giải thuật này được đặt tên theo nhà toán học người Hy Lạp cổ đại Euclid, người đã viết nó trong bộ Cơ sở của ông (khoảng năm 300 TCN). Nó là một ví dụ về thuật toán, một chuỗi các bước tính toán theo điều kiện nhất định và là một trong số những thuật toán lâu đời nhất được sử dụng rộng rãi.

Giải thuật Euclid dựa trên nguyên tắc là ước chung lớn nhất của hai số nguyên không thay đổi khi thay số lớn hơn bằng hiệu của nó với số nhỏ hơn. Chẳng hạn, 21 là ƯCLN của 252 và 105 (vì 252 = 21 × 12 và 105 = 21 × 5) và cũng là ƯCLN của 105 và 252 − 105 = 147. Khi lặp lại quá trình trên thì hai số trong cặp số ngày càng nhỏ đến khi chúng bằng nhau, và khi đó chúng là ƯCLN của hai số ban đầu. Bằng cách đảo ngược lại các bước, ƯCLN này có thể được biểu diễn thành tổng của hai số hạng, mỗi số hạng bằng một trong hai số đã cho nhân với một số nguyên dương hoặc âm (đồng nhất thức Bézout), chẳng hạn, 21 = 5 × 105 + (−2) × 252.

Dạng ban đầu của giải thuật như trên có thể tốn nhiều bước thực hiện phép trừ để tìm ƯCLN nếu một trong hai số lớn hơn rất nhiều so với số còn lại. Một dạng khác của giải thuật rút ngắn lại các bước này, thay vào đó thế số lớn hơn bằng số dư của nó khi chia cho số nhỏ hơn (dừng lại khi số dư bằng không). Dạng thuật toán này chỉ tốn số bước nhiều nhất là năm lần số chữ số của số nhỏ hơn trên hệ thập phân. Gabriel Lamé chứng minh được điều này vào năm 1844, đánh dấu sự ra đời của lý thuyết độ phức tạp tính toán. Nhiều phương pháp khác để tăng hiệu quả của thuật toán cũng đã được phát triển trong thế kỷ 20.

Giải thuật Euclid có rất nhiều ứng dụng trong lý thuyết và thực tế. Nó được dùng để rút gọn phân số về dạng tối giản và thực hiện phép chia trong số học module. Thuật toán cũng là một thành phần then chốt trong giao thức mật mã để bảo mật kết nối Internet và được dùng để phá vỡ hệ thống mật mã này qua phân tích số nguyên. Nó cũng được áp dụng để giải phương trình Diophantine, chẳng hạn như tìm một số thỏa mãn nhiều biểu thức đồng dư theo định lý số dư Trung Quốc, để xây dựng liên phân số hay tìm xấp xỉ gần đúng nhất cho số thực. Cuối cùng, nó là công cụ cơ bản để chứng minh nhiều định lý trong lý thuyết số như định lý bốn số chính phương của Lagrange và tính duy nhất của phân tích số nguyên ra thừa số nguyên tố. Thuật toán Euclid ban đầu chỉ được giới hạn về số tự nhiên và độ dài hình học (số thực), nhưng đến thế kỷ 19 đã được mở rộng cho nhiều dạng số khác như số nguyên Gauss và đa thức một biến, dẫn đến các khái niệm về đại số trừu tượng như miền Euclid.

Ý tưởng

Giải thuật Euclid dùng để tính ước chung lớn nhất (ƯCLN) của hai số tự nhiên ab. Ước chung lớn nhất g là số lớn nhất chia được bởi cả ab mà không để lại số dư và được ký hiệu là ƯCLN(a, b) hoặc (a, b).

Nếu ƯCLN(a, b) = 1 thì ab được gọi là hai số nguyên tố cùng nhau. Tính chất này không khẳng định ab là số nguyên tố. Chẳng hạn, 6 và 35 đều không phải là số nguyên tố vì chúng đều có thể được phân tích thành tích của các thừa số nguyên tố: 6 = 2 × 3 và 35 = 5 × 7. Tuy nhiên, 6 và 35 nguyên tố cùng nhau vì chúng không có một thừa số chung nào. nhỏ|Một hình chữ nhật kích thước 24 × 60 được chia thành 10 hình vuông nhỏ cạnh 12, trong đó 12 là ƯCLN của 24 và 60. Tổng quát hơn, một hình chữ nhật kích thước a × b có thể được chia thành các hình vuông cạnh c khi và chỉ khi c là ước chung của ab. Gọi g = ƯCLN(a, b). Vì ab đều là bội của g nên chúng có thể được viết thành a = mgb = ng, và không tồn tại số G > g nào để các biểu thức trên đúng. Hai số tự nhiên mn phải nguyên tố cùng nhau vì không thể phân tích bất kỳ thừa số chung nào lớn hơn 1 từ mn để g lớn hơn. Do đó, một số c bất kỳ được chia bởi ab cũng được chia bởi g. Ước chung lớn nhất g của ab là ước chung (dương) duy nhất của chúng có thể chia được bởi một ước chung c bất kỳ.

ƯCLN có thể được minh họa như sau. Xét một hình chữ nhật có kích thước là a × b và một ước chung c bất kỳ có thể chia được hết cả ab. Cả hai cạnh của hình chữ nhật có thể được chia thành các đoạn thẳng bằng nhau có độ dài là c để chia hình chữ nhật thành các hình vuông có cạnh bằng c. Ước chung lớn nhất g chính là giá trị lớn nhất của c để điều này có thể xảy ra. Chẳng hạn, một hình chữ nhật có kích thước 24 × 60 có thể được chia thành các hình vuông có cạnh là 1, 2, 3, 4, 6 hoặc 12, nên 12 là ước chung lớn nhất của 24 và 60, tức là hình chữ nhật trên có hai hình vuông nằm trên một cạnh (24/12 = 2) và năm hình vuông nằm trên cạnh còn lại (60/12 = 5).

Ước chung lớn nhất của hai số ab là tích của các thừa số nguyên tố chung của hai số đã cho, trong đó một thừa số có thể được nhân lên nhiều lần, chỉ khi tích của các thừa số đó chia được cả ab. Chẳng hạn, ta phân tích được 1386 = 2 × 3 × 3 × 7 × 11 và 3213 = 3 × 3 × 3 × 7 × 17 nên ước chung lớn nhất 1386 và 3213 bằng 63 = 3 × 3 × 7 (là tích của các thừa số nguyên tố chung). Nếu hai số không có một thừa số nguyên tố chung nào thì ước chung lớn nhất của chúng bằng 1 (một trường hợp của tích rỗng), hay nói cách khác chúng nguyên tố cùng nhau. Một ưu điểm quan trọng của giải thuật Euclid là nó có thể tính được ƯCLN đó mà không cần phân tích ra thừa số nguyên tố. Bài toán phân tích các số nguyên lớn là rất khó và tính bảo mật của nhiều giao thức mật mã phổ biến được dựa trên tính chất này.

Một định nghĩa khác của ƯCLN rất hữu ích trong toán cao cấp, đặc biệt là lý thuyết vành. Ước chung lớn nhất g của hai số ab khác không là tổ hợp tuyến tính tích phân nhỏ nhất, tức là số nhỏ nhất với dạng ua + vb với uv là số nguyên. Tập hợp tất cả các tổ hợp tuyến tính tích phân của ab thực chất giống với tập hợp tất cả các bội của g (mg với m là số nguyên). Trong ngôn ngữ toán học hiện đại, ideal tạo bởi ab chính là ideal tạo bởi g (một ideal tạo bởi một phần tử duy nhất được gọi là ideal chủ yếu và tất cả ideal của số nguyên đều là ideal chủ yếu). Từ đó, một số tính chất của ƯCLN có thể được nhận ra dễ dàng hơn, ví dụ như bất kỳ ước chung nào của ab cũng chia được bởi ƯCLN (cả hai số hạng trong ua + vb). Tính thống nhất của định nghĩa này với các định nghĩa khác được mô tả dưới đây.

ƯCLN của ba số trở lên bằng tích của các thừa số nguyên tố chung của cả ba số đã cho, nhưng nó cũng có thể được tính bằng cách tìm ƯCLN của từng cặp số trong ba số đó. Chẳng hạn,

:

Vì vậy, giải thuật Euclid, vốn dùng để tính ƯCLN của hai số nguyên cũng có thể được áp dụng để tính ƯCLN của một số lượng số nguyên bất kỳ.

Mô tả

Thuật toán

Giải thuật Euclid gồm một dãy các bước mà trong đó, đầu ra của mỗi bước là đầu vào của bước kế tiếp. Gọi k là số nguyên dùng để đếm số bước của thuật toán, bắt đầu từ số không (khi đó bước đầu tiên tương ứng với k = 0, bước tiếp theo là k = 1,...)

Mỗi bước bắt đầu với hai số dư không âm rk−1rk−2. Vì thuật toán giúp đảm bảo số dư luôn giảm dần theo từng bước nên rk−1 nhỏ hơn rk−2. Mục tiêu của bước thứ k là tìm thương qk và số dư rk thỏa mãn phương trình : r_{k-2} = qk r{k-1} + r_k và 0 ≤ rk < rk−1. Nói cách khác, từ số lớn hơn rk−2, trừ đi bội của số nhỏ hơn rk−1 đến khi phần dư rk nhỏ hơn rk−1.

Ở bước đầu tiên (k = 0), số dư r−2r−1 bằng ab, hai số cần tìm ƯCLN. Đến bước kế tiếp (k = 1), hai số dư lần lượt bằng b và số dư r0 ở bước đầu tiên,... Do đó, thuật toán có thể được viết thành một dãy các phương trình

: \begin{align} a &= q_0 b + r_0 \ b &= q_1 r_0 + r_1 \ r_0 &= q_2 r_1 + r_2 \ r_1 &=q_3 r_2 + r_3 \ &\,\,\,\vdots \end{align}

Nếu a nhỏ hơn b thì thuật toán đảo ngược vị trí của hai số. Chẳng hạn, nếu a < b thì thương q0 bằng không và số dư r0 bằng a. Do đó, rk luôn nhỏ hơn rk−1 với mọi k ≥ 0.

Vì các số dư luôn giảm dần theo từng bước nhưng không thể là số âm nên số dư sau cùng rN phải bằng không và thuật toán dừng lại tại đó. Số dư khác không cuối cùng rN−1 chính là ước chung lớn nhất của ab. Số N không thể là vô hạn vì chỉ có một số lượng hữu hạn các số nguyên dương nằm giữa số dư ban đầu r0 và số không.

Chứng minh tính đúng đắn

Tính đúng đắn của giải thuật Euclid có thể được chứng minh qua hai bước lập luận. Bước thứ nhất, cần chứng minh số dư khác không cuối cùng rN−1 chia được cả ab. Vì rN−1 là một ước chung nên nó phải nhỏ hơn hoặc bằng với ước chung lớn nhất g. Bước thứ hai, cần chứng minh rằng bất kỳ ước chung nào của ab, trong đó có g cần phải chia được rN−1; từ đó, g phải nhỏ hơn hoặc bằng rN−1. Hai kết luận trên là mâu thuẫn trừ khi rN−1 = g.

Để chứng tỏ rN−1 chia được cả ab, cần biết rN−1 chia được số dư liền trước rN−2:

:

vì số dư cuối cùng rN bằng không. rN−1 cũng chia được số dư rN−3:

:

vì nó chia được cả hai số hạng trong vế phải của phương trình. Chứng minh tương tự, rN−1 cũng chia được tất cả số dư liền trước nó kể cả ab. Không có số dư liền trước rN−2, rN−3,... chia bởi ab cho số dư bằng không. Vì rN−1 là ước chung của ab nên rN−1 ≤ g.

Trong bước thứ hai, một số tự nhiên c bất kỳ chia được cả ab (là ước chung của ab) cũng chia được số dư rk. Theo định nghĩa thì ab có thể được viết thành bội của c: a = mcb = nc với mn là các số tự nhiên. Ta có r0 = a − q0b = mc − q0nc = (m − q0n)c nên c là một ước của số dư ban đầu r0. Chứng minh như bước thứ nhất, ta thấy c cũng là ước của các số dư liền sau r1, r2,... Từ đó, ước chung lớn nhất g là ước của rN−1 hay g ≤ rN−1. Kết hợp hai kết luận thu được, ta có g = rN−1. Vậy g là ước chung lớn nhất của tất cả cặp số liền sau:

:

Ví dụ

nhỏ|Hình ảnh động minh họa giải thuật Euclid qua phép trừ. Hình chữ nhật ban đầu có hai cạnh a = 1071 và b = 462. Đặt vào đó các hình vuông kích thước 462 × 462 thì còn lại hình chữ nhật 462 × 147. Tiếp tục đặt vào hình chữ nhật đó các hình vuông 147 × 147 đến khi còn lại hình chữ nhật 21 × 147. Cuối cùng, đặt vào phần hình còn lại đó các hình vuông 21 × 21 thì không còn chỗ trống nào. Cạnh của hình vuông nhỏ nhất, 21, chính là ƯCLN của 1071 và 462. Áp dụng giải thuật Euclid để tính ƯCLN của a = 1071 và b = 462. Đầu tiên, ta trừ bội của 462 từ 1071 thì được thương q0 = 2 và số dư là 147:

:

Tiếp tục trừ bội của 147 từ 462 thì được thương q1 = 3 và số dư là 21:

:

Tiếp tục trừ bội của 21 từ 147 thì được thương q2 = 7 và số dư là 0:

:

Vì số dư cuối cùng bằng 0 nên thuật toán kết thúc với 21 là ƯCLN của 1071 và 462, bằng với ƯCLN có được từ phép phân tích ra thừa số nguyên tố như trên. Các bước được tóm tắt thành bảng sau:

Minh họa

Giải thuật Euclid có thể được minh họa dựa vào bài toán hình chữ nhật tương tự như trên. Giả sử ta cần dùng hình vuông để lấp đầy một hình chữ nhật có kích thước là a × b với a là số lớn hơn. Đầu tiên, ta đặt các hình vuông b × b lên trên đó thì còn lại phần hình trống là một hình chữ nhật b × r0 với r0 < b. Tiếp theo, ta đặt các hình vuông r0 × r0 lên phần hình trống đó thì còn lại phần hình trống thứ hai r1 × r0 mà ta cần phải đặt lên đó các hình vuông r1 × r1,... Toàn bộ quá trình chỉ kết thúc khi không còn phần hình trống nào, và khi đó, độ dài cạnh hình vuông nhỏ nhất chính là ƯCLN của độ dài hai cạnh hình chữ nhật ban đầu. Chẳng hạn, hình vuông nhỏ nhất trong hình bên là 21 × 21 (màu đỏ), và 21 là ƯCLN của 1071 và 462, độ dài hai cạnh của hình chữ nhật ban đầu (màu xanh lá).

Phép chia có dư

Tại mỗi bước k, giải thuật Euclid tính một thương qk và số dư rk từ hai số rk−1rk−2:
trong đó rk không âm và nhỏ hơn giá trị tuyệt đối của rk−1. Định lý làm nền tảng cho phép chia có dư cho thấy luôn tồn tại duy nhất một thương và số dư như vậy.

Trong dạng ban đầu của giải thuật, thương và số dư được tìm bằng cách lặp lại phép trừ, nghĩa là trừ rk−1 từ rk−2 và lặp lại đến khi phần dư rk nhỏ hơn rk−1, sau đó hoán đổi chúng cho nhau rồi lại lặp lại quá trình này. Phép chia có dư hiệu quả hơn nhiều khi giảm đi số bước giữa hai hoán đổi còn một bước duy nhất. Hơn nữa, ta còn có thể thay phép chia có dư bằng phép toán modulo, vốn chỉ cho kết quả số dư. Như vậy, dạng lặp của giải thuật Euclid trở thành

:

Chương trình

Giải thuật Euclid có thể được biểu diễn bằng mã giả. Chẳng hạn, dạng phép chia của nó có thể được lập trình thành function gcd(a, b) while b ≠ 0 t:= b b:= a mod b a:= t return a Ở đầu vòng lặp k, biến b mang giá trị số dư rk−1, trong khi biến a mang giá trị số dư liền trước rk−2. Bước b := a mod b giống với công thức đệ quy như trên rkrk−2 mod rk−1. Biến tạm thời t mang giá trị rk−1 khi tính số dư liền sau rk. Cuối vòng lặp, biến b mang giá trị rk, trong khi biến a mang giá trị số dư liền trước rk−1.

Trong dạng phép trừ (dạng ban đầu của thuật toán), bước b := a mod b được thay bằng phép trừ lặp lại. Trái ngược với dạng phép chia cho phép đầu vào là một số nguyên bất kỳ, dạng phép trừ chỉ cho phép đầu vào là một số nguyên dương và dừng lại khi a = b: function gcd(a, b) while a ≠ b if a > b a:= a − b else b:= b − a return a Biến ab luân phiên mang giá trị của các số dư liền trước rk−1rk−2. Giả sử a > b ở đầu một vòng lặp thì a bằng rk−2rk−2 > rk−1. Trong vòng lặp, a được trừ đi bởi bội của số dư liền trước b đến khi a nhỏ hơn b, khi đó a trở thành số dư liền sau rk. Sau đó, b được trừ đi bởi bội của a đến khi nó nhỏ hơn a và phần còn lại trở thành số dư rk+1,...

Dạng đệ quy dựa trên tính chất ƯCLN của các cặp số dư liên tiếp là bằng nhau và điều kiện dừng lại là ƯCLN(rN−1, 0) = rN−1. function gcd(a, b) if b = 0 return a else return gcd(b, a mod b) Sử dụng dạng này, ƯCLN(1071, 462) được tính từ ƯCLN(462, 1071 mod 462) = ƯCLN(462, 147). ƯCLN sau cùng được tính từ ƯCLN(147, 462 mod 147) = ƯCLN(147, 21), vốn được tính từ ƯCLN(21, 147 mod 21) = ƯCLN(21, 0) = 21.

Phương pháp số dư tuyệt đối nhỏ nhất

Trong một dạng khác của giải thuật Euclid, thương thu được qua mỗi bước được tăng thêm 1 đơn vị nếu giá trị tuyệt đối của phần dư âm nhỏ hơn so với giá trị tuyệt đối của phần dư dương. Điều kiện của phương trình

:

là . Tuy nhiên, có thể tính số dư âm bởi

:

nếu hoặc

:

nếu .

Nếu thay bằng với thì ta có một dạng khác của giải thuật Euclid sao cho trong mỗi bước,

:

Leopold Kronecker chứng minh được rằng dạng này tốn số bước ít nhất trong tất cả các dạng của giải thuật Euclid.

Lịch sử phát triển

nhỏ|Giải thuật Euclid có thể đã xuất hiện từ trước thời của [[Euclid, người đang cầm com-pa trong một tranh vẽ khoảng năm 1474.]] Giải thuật Euclid là một trong những thuật toán lâu đời nhất được sử dụng rộng rãi. Nó xuất hiện trong bộ Cơ sở của Euclid (khoảng 300 TCN), đặc biệt là ở cuốn 7 (mệnh đề 1–2) và cuốn 10 (mệnh đề 2–3). Trong cuốn 7, thuật toán được phát biểu cho số nguyên, còn trong cuốn 10, nó được phát biểu cho độ dài của đoạn thẳng. (Ngày nay, ta có thể nói thuật toán được phát biểu cho số thực. Nhưng độ dài, diện tích và thể tích, vốn được đo bằng số thực trong thời kỳ hiện đại, lại không có cùng đơn vị đo và cũng không có đơn vị đo tự nhiên nào cho chúng; người xưa lúc bấy giờ vẫn chưa hiểu rõ khái niệm số thực.) Thuật toán trong cuốn 10 mang tính hình học: ƯCLN của hai độ dài ab là độ dài lớn nhất g có thể làm đơn vị đo chung cho ab; nói cách khác, độ dài ab là bội số của độ dài g.

Có lẽ giải thuật trên không phải do Euclid trực tiếp tìm ra (ông là người đã sưu tầm các công trình của các nhà toán học khác và tổng hợp lại trong bộ Cơ sở). Nhà toán học và sử học B. L. van der Waerden cho rằng cuốn 7 xuất phát từ một cuốn sách giáo khoa về lý thuyết số được viết bởi các nhà toán học trong trường của Pythagoras. Giải thuật có thể đã được biết bởi Eudoxus của Cnidus (khoảng 375 TCN), hoặc thậm chí có thể đã có từ trước thời của ông, dựa trên thuật ngữ ἀνθυφαίρεσις (anthyphairesis, phép trừ nghịch đảo) trong một số công trình của Euclid và Aristotle.

Nhiều thế kỷ sau, giải thuật Euclid được tìm ra một cách độc lập tại Ấn Độ và Trung Quốc, chủ yếu để giải phương trình Diophantine vốn nảy sinh trong thiên văn học và làm lịch chính xác. Vào cuối thế kỷ 5, nhà toán học và thiên văn người Ấn Độ Aryabhata đã gọi giải thuật là một "máy nghiền", có thể là vì tính hiệu quả của nó trong việc giải phương trình Diophantine. Mặc dù một trường hợp đặc biệt của định lý số dư Trung Quốc đã được mô tả trong cuốn Sunzi Suanjing, lời giải tổng quát được Tần Cửu Thiều xuất bản trong cuốn Shushu Jiuzhang (數書九章, Giáo trình Toán học trong 9 chương) năm 1247. Giải thuật Euclid lần đầu tiên được mô tả và truyền bá tại châu Âu trong cuốn Problèmes plaisants et délectables (ấn bản thứ hai) của Bachet năm 1624.

Đến thế kỷ 19, giải thuật Euclid đã dẫn đến sự ra đời và phát triển của các hệ thống số học mới, chẳng hạn như số nguyên Gauss và số nguyên Eisenstein. Năm 1815, Carl Gauss sử dụng giải thuật này để chứng minh tính duy nhất của sự phân tích các số nguyên Gauss, mặc dù công trình của ông chỉ được xuất bản lần đầu năm 1832. Gauss trước đó cũng từng nhắc đến giải thuật trong cuốn Disquisitiones Arithmeticae (xuất bản 1801) liên quan đến liên phân số. Lejeune Dirichlet nhận thấy rằng nhiều hệ quả của lý thuyết số là đúng với bất kỳ hệ thống số học nào mà giải thuật Euclid có thể áp dụng được. Những bài giảng của Dirichlet về lý thuyết số đã được biên tập và mở rộng bởi Richard Dedekind, người đã ứng dụng giải thuật để nghiên cứu số đại số nguyên, một dạng số tổng quát mới. Chẳng hạn, Dedekind là người đầu tiên chứng minh được định lý Fermat về tổng của hai số chính phương qua sự phân tích duy nhất số nguyên Gauss. Ông cũng định nghĩa khái niệm miền Euclid, một hệ thống số mà trong đó một dạng tổng quát của giải thuật Euclid có thể được xác định. Những năm cuối thế kỷ 19, giải thuật Euclid dần bị lu mờ bởi lý thuyết tổng quát của Dedekind về ideal.

Nhiều ứng dụng khác của giải thuật Euclid cũng đã được phát triển trong thế kỷ 19. Năm 1829, Charles Sturm cho thấy rằng giải thuật này có ích trong phương pháp chuỗi Sturm dùng để đếm số nghiệm thực của đa thức trong một khoảng bất kỳ.

Giải thuật Euclid là thuật toán liên hệ số nguyên đầu tiên dùng để tìm mối liên hệ số nguyên giữa các số thực tương xứng. Nhiều thuật toán khác như vậy cũng đã được phát triển, chẳng hạn như thuật toán của Helaman Ferguson và R.W. Forcade (1979) hay thuật toán LLL.

Năm 1969, Cole và Davie đã tạo ra một trò chơi hai người dựa trên giải thuật Euclid có tên là The Game of Euclid. Trò chơi này có một chiến lược chơi tối ưu. Mỗi người chơi bắt đầu với hai đống đá chứa ab viên đá, lần lượt loại bỏ m bội của đống nhỏ hơn so với đống lớn hơn. Như vậy, khi a lớn hơn b thì người tiếp theo có thể giảm số lượng viên đá trong đống lớn từ a xuống amb viên. Người chiến thắng là người đầu tiên có một đống không còn viên đá nào.

👁️ 0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
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
**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
ax + by =c
Trong đó a, b, c
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
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
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
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
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 d = \gcd(a,b) là ước chung lớn nhất của hai số nguyên không âm ab thì:
Trong lý thuyết hệ thống điều khiển, **tiêu chuẩn ổn định Routh-Hurwitz **là một kiểm tra toán học là một điều kiện cần và đủ cho sự ổn định của một hệ thống điều khiển
nhỏ|Chiếc bánh pizza được cắt nhỏ; mỗi miếng bánh là \frac1{8} 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 \frac1{n} với n
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ố đó.
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
**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**
Thời gian mà máy tính khi thực hiện một thuật toán không chỉ phụ thuộc vào bản thân thuật toán đó, ngoài ra còn tùy thuộc từng máy tính. Để đánh giá hiệu quả của
**Giải tam giác** () là bài toán lượng giác tập trung vào việc tìm ra các yếu tố (nghiệm) của một tam giác (góc và độ dài cạnh), khi chưa biết một số yếu tố
**Edward John Routh** FRS (; 20 tháng 1 năm 1831 – 7 tháng 6 năm 1907), là một nhà toán học người Anh, được biết đến như huấn luyện viên ngoại hạng cho sinh viên
Cơ sở lý thuyết của **phép chia với dư** là một định lý trong lý thuyết số. Phép chia này được ứng dụng trong giải thuật Euclid tìm ước chung lớn nhất của hai số
Trong ngành khoa học máy tính, **cây cú pháp trừu tượng** (AST, abstract syntax tree) là một cây có giới hạn, có nhãn và có định hướng. Đây là cấu trúc cây mà các nút
**Phân số tối giản** là phân số mà có tử số và mẫu số không thể cùng chia hết cho số nào ngoại trừ số 1 (hoặc -1 nếu lấy các số âm). Nói cách
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
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ó
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 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
**Tiên đề**, **định đề** là một phát biểu được coi là đúng, để làm tiền đề hoặc điểm xuất phát cho các suy luận và lập luận tiếp theo. Các từ gốc tiếng Latin của
**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
**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|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ự
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ỏ|Hình 1: Biên của tam giác Reuleaux có độ rộng không đổi được hình thành bằng đường cong dựa trên một tam giác đều. Tất cả các điểm trên cung tròn cách đều với đỉnh
thumb|Lăng kính tam giác phân tách chùm ánh sáng trắng, tách ra các bước sóng dài (đỏ) và các bước sóng ngắn hơn (màu lam). Đèn sư tử ở [[Hẻm núi Linh dương|Antelope Canyon, Hoa
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ó
Trong toán học, **không gian mêtric** là một tập hợp mà một khái niệm của khoảng cách (được gọi là mêtric) giữa các phần tử của tập hợp đã được định nghĩa. Không gian mêtric
nhỏ|Không gian mà chú cua [[còng này (có một càng to hơn bên kia nên là một hình không đối xứng) sinh sống là một mặt Mobius. Lưu ý rằng chú cua biến thành hình
**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
**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
Trong toán học, thuật ngữ **tối ưu hóa** chỉ tới việc nghiên cứu các bài toán có dạng :_Cho trước:_ một hàm _f_: _A_ \to **R** từ tập hợp _A_ tới tập số thực :_Tìm:_
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à độ
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
**Bertrand Arthur William Russell, Bá tước Russell thứ 3**, (phiên âm tiếng Việt: **Béctơrăng Rátxen**; sinh ngày 18 tháng 5 năm 1872 – mất ngày 2 tháng 2 năm 1970), là một triết gia, nhà
[[Đồ 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, **bổ đề Johnson–Lindenstrauss** là một mệnh đề về việc ánh xạ một tập hợp các điểm trong không gian Euclid nhiều chiều về không gian ít chiều. Bổ đề khẳng định rằng
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
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ì
**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
phải|khung|Hai bước đầu tiên của quá trình Gram–Schmidt Trong toán học, đặc biệt là trong lĩnh vực đại số tuyến tính và giải tích số, **quá trình Gram–Schmidt** là một phương pháp trực chuẩn hóa
**Hillel (Harry) Furstenberg** ( ) (sinh ngày 29 tháng 9 năm 1935) là một nhà toán học người Mỹ gốc Israel sinh ra ở Đức và là giáo sư danh dự tại Đại học Hebrew
nhỏ|[[Đồ thị của hàm số (màu đen) và tiếp tuyến của nó (màu đỏ). Hệ số góc của tiếp tuyến bằng đạo hàm của hàm đó tại tiếp điểm (điểm được đánh dấu).]] Trong toán
**Tiếp tuyến** của một đường cong tại một điểm bất kỳ thuộc đường cong là một đường thẳng chỉ "chạm" vào đường cong tại điểm đó. Leibniz định nghĩa tiếp tuyến như một đường thẳng
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ó