數學學院

首頁 › 大學 › 大三

輾轉相除與 Bézout

大三 · 數論

觀念

ab商 q餘數 ra = qb + r481821248 = 2·18 + 1218121618 = 1·12 + 61262012 = 2·6 + 0

輾轉相除法 (Euclidean algorithm) 求最大公因數:反覆用 gcd⁡(a,b)=gcd⁡(b,a mod b)\gcd(a,b) = \gcd(b, a\bmod b),餘數為 0 時的除數就是答案。它快得驚人——步數與位數成正比,是最古老仍在用的演算法。

Bézout 等式:存在整數 x,yx, y 使 ax+by=gcd⁡(a,b)ax + by = \gcd(a,b)。把輾轉相除的每一步倒推回去就能找到(擴展歐幾里得);解不唯一:若 (x0,y0)(x_0, y_0) 是一組解、d=gcd⁡(a,b)d = \gcd(a,b),所有解是 x=x0+kbdx = x_0 + k\frac{b}{d}、y=y0−kady = y_0 - k\frac{a}{d}(kk 為整數),xx 與 yy 要一起調整。

算例:gcd⁡(48,18)\gcd(48, 18):48=2⋅18+1248 = 2\cdot18 + 12、18=1⋅12+618 = 1\cdot12 + 6、12=2⋅612 = 2\cdot6,得 6。倒推:6=18−12=18−(48−2⋅18)=3⋅18−486 = 18 - 12 = 18 - (48 - 2\cdot18) = 3\cdot18 - 48。lcm=ab/gcd⁡\text{lcm} = ab/\gcd。

Bézout 是數論的萬能鑰匙:模反元素存在性、線性同餘方程可解條件、中國剩餘定理、「互質則存在 ax≡1ax\equiv1」全由它推出;RSA 產生金鑰時,私鑰指數 dd 就是用擴展歐幾里得由 ee 與 φ(N)\varphi(N) 算出來的。

例題

用輾轉相除法 (Euclidean algorithm) 求 gcd⁡(210,54)\gcd(210, 54)。

看解法與答案

反覆用「大數 = 商 × 小數 + 餘數」,因為 gcd⁡(a,b)=gcd⁡(b,a mod b)\gcd(a,b) = \gcd(b, a\bmod b);餘數為 0 時的除數就是 gcd:

210=3⋅54+4854=1⋅48+648=8⋅6+0210 = 3\cdot54 + 48 \\ 54 = 1\cdot48 + 6 \\ 48 = 8\cdot6 + 0

最後一個非零餘數(也就是最後的除數)是 66,所以 gcd⁡=6\gcd = 6。

答案: 66

用在哪裡

插畫

輾轉相除與 Bézout:情境插畫輾轉相除與 Bézout:例題插畫

學習路徑

先學會

學完可以接著學

互動練習在本機版

這個網站是觀念與例題的閱讀版。互動練習(每次出不同數字的新題、自動判對錯、錯題本、熟練度與複習排程)在「數學學院」本機版,目前還沒對外開放。