# 代數導論二 Week 3 (Part 3) - Euclidean Algorithm [TOC] ## 定理:輾轉相除法 :::danger 假定 $R$ 是一個 *Euclidean Domain*,$a, b \in R$,且 $b \neq 0$。假定 $r_n$ 是對 $a, b$ 使用輾轉相除法之後時,出現的最後一個非零餘數。則: 1. $r_n$ 就是 $a, b$ 的最大公因數: $$ r_n = \gcd(a, b) $$ 2. $r_n$ 可以生成 $(a, b)$: $$ (r_n) = (a, b) $$ ::: 這邊的 $r_n$ 是指:如果一直作輾轉相除法: $$ \begin{align} \overbrace{\boxed{r_0}}^{a} &= \overbrace{\boxed{r_1}}^{b}q + r_2 \newline r_1 &= r_2q_2 + r_3 \newline r_2 &= r_3q_2 + r_4 \newline \vdots \newline r_{n-3} &= r_{n-2}q_{n-2} + r_{n-1} \newline r_{n-2} &= r_{n-1}q_{n-1} + r_n \newline \boxed{r_{n-1}}&= r_nq \end{align} $$ 最後一定會做到一個餘數是 $0$ 的步驟 (因為 $0 \leq N(r_i) < N(r_{i - 1})$,而且每個 $N(r_i)$ 都是正整數)。最後剩下的那個 $r_n$ 就是上面所說的。 *Euclidean Domain* 中,每個 *ideal* 都是 *principal ideal*,而前面已經證明過「交換環中若兩個元素生成的 *ideal* 是個 *principal ideal*,那麼這個 *ideal* 就可以用兩者的最大公因數生成」。所以如果已經有 $(1)$,那就自動有 $(2)$。因此只要證明第一點就可以了: 1. 首先證明 $r_n$ 是一個 $a, b$ 的公因數,方法是從後面往前面遞推,一路得到 $r_n$ 可以同時整除 $a$ 跟 $b$: 1. 首先,顯然有: $$ r_n \mid r_n \quad (1) $$ 2. 接下來,因為 $r_{n-1} = r_nq$,所以也有: $$ r_n \mid r_{n-1} \quad (2) $$ 所以就可以發現: $$ r_{n-2} = \underbrace{r_{n - 1}}_{r_{n} \mid r_{n-1}}q_{n-1} + \underbrace{r_{n}}_{r_n \mid r_n} $$ 因此: $$ r_n \mid r_{n-2} $$ 3. 如法炮製,發現 $r_n$ 可以整除 $r_{n-3}$: $$ r_{n-3} = \underbrace{r_{n-2}}_{r_n \mid r_{n-2}}q_{n-2} + \underbrace{r_{n-1}}_{r_n \mid r_{n-1}} $$ 4. 因為 $r_{n}$ 可以整除 $r_{n - 2}$ 跟 $r_{n - 3}$,所以可以整除 $r_{n - 4}$。因此一般地來說,就有 $r_n \mid r_{k}$ 且 $r_n \mid r_{k-1}$,所以 $r_n \mid r_{k-2}$: $$ r_n \mid \underbrace{r_{k}q_{k} + r_{k-1}}_{r_{k-2}} $$ 5. 所以做到最後一步時,就會有: $$ \begin{align} r_n \mid \underbrace{r_1}_{b} \newline r_n \mid \underbrace{r_0}_{a} \end{align} $$ 也就是: $$ \boxed{r_n \mid a \text{ and }r_n \mid b} $$ 2. 接下來要證明「最大」,方法就是從前面帶回去: 1. 因為 $d \mid r_0$ 且 $d \mid r_1$,所以 $d \mid r_2$: $$ \underbrace{r_0}_{d \mid r_0} = \underbrace{r_1}_{d \mid r_1}q_1 + r_2 $$ 2. 因此一般地來說: $$ \begin{align} &(d \mid r_{k-2}) \text{ and }(d \mid r_{k-1}) \newline &\Rightarrow \overbrace{r_{k-2}}^{(d \mid r_{k-2})} = \overbrace{r_{k-1}}^{(d \mid r_{k-1})}q_{k-1} + r_k \newline &\Rightarrow d \mid r_{k} \end{align} $$ 3. 所以一直遞推,就會得到: $$ \boxed{d \mid r_n} $$ 4. 接下來就可以證明最大。假定 $d'$ 是一個 $a, b$ 的公因數,因為 $d'$ 是最大公因數,所以由最大公因數的定義知道:所有 $a, b$ 的公因數都要能夠整除他: $$ d' \mid a \text{ and }d' \mid b \Rightarrow d' \mid d $$ 5. 另外一方面,因為 $d \mid r_n$,所以任何能整除 $d$ 的東西都要能整除 $r_n$。所以就發現 $d'$ 也必須能夠整除 $r_n$: $$ d' \mid d \text{ and } d \mid r_n \Rightarrow d' \mid r_n $$ 這樣就證明完「最大」的部分了。 > **使用 PID 性質的版本**:就是從前面的步驟,然後用 *PID* 中「能夠生成 2 元素所生成的 Ideal」等價於「最大公因數」證明。 > > 由 $(r_n \mid d)$ 且 $(d \mid r_n)$。這就表示: > > $$ > (d) \subseteq (r_n) \text{ and }(r_n) \subseteq (d) > $$ > > 換句話說: > > $$ > (d) = (r_n) > $$ > > 也就是 $r_n$ 跟 $d$ 生成的 *ideal* 都是一樣的。又因為 $d$ 生成的 *ideal* 就是 $(a, b)$,所以實際上 $r_n$ 生成的 *ideal* 恰好就是 $(a, b)$: > > $$ > \underbrace{(d)}_{(a, b)} = (r_n) > $$ > > 如果 $(a, b)$ 是 *principal ideal*,那麼能生成 $(a, b)$ 的元素都是 $a, b$ 的一個最大公因數。所以就證明了 $r_n$ 是 $a, b$ 的一個最大公因數。 > ## 推論:Bezout's Identity :::danger 假定 $R$ 是一個 *Euclidean Domain*,且 $a, b, N \in R$。則以下兩個敘述等價: 1. 以下的方程式的 $x_0, y_0$ 在 $R$ 中有解: $$ a x_0 + by_0 = N \quad a, b, N \in R $$ 2. $N$ 是 $\gcd(a, b)$ 的倍數: $$ \gcd(a, b) \mid N $$ ::: 上面到下面是顯然,下面到上面是因為:上面那條方程有解的意思是「$N$ 在 $(a, b)$」裡面,但是 $(a, b) = (\gcd(a, b))$。