具体数学 - 整除性 Divisibility

如果 \(m>0\) 且比值 \(n/m\) 是一个整数,我们就说 \(m\) 整除 \(n\)(或者 n 被 m 整除),记作

\[m \mid n \Leftrightarrow m > 0, \exist k \in Z, n=mk. \]

两个整数 \(m\)\(n\) 的最大公因子是能整除它们两者的最大整数

\[\gcd(m,n) = \max{\{k \vert \ k \mid m \and k \mid n\}}. \]

欧几里得算法

欧几里得算法即使用辗转相除法求两个整数的最大公因子,使用以下递归式进行计算

\[\begin{align*} \gcd(0,n) &= n; \\ \gcd(m,n) &= gcd(n \bmod m, m). \end{align*} \]

该递归式成立的原因是,\(m\)\(n\) 的任何公因子必定是 \(m\)\(n \bmod m\) 的公因子。将欧几里得算法进行推广可以得到如下形式

\[m'm+n'n = gcd(m,n). \]

式子对一定的整数 \(m'\)\(n'\) 成立,这其实就是裴蜀定理,下面进行证明。我们将等式两边同除以 \(d = \gcd(m,n)\),则我们只需证明 \(m'm_1 + n'n_1=1\) 即可。我们将欧几里得算法中的每一个步骤进行展开得

\[\begin{align*} m_1 &= q_1 n_1 + r_1 \\ n_1 &= q_2 r_1 + r_2 \\ r_1 &= q_3 r_2 + r_3 \\ \cdots \\ r_{n-3} &= q_{n-1}r_{n-2}+r_{n-1} \\ r_{n-2} &= q_n r_{n-1} + r_n \\ r_{n-1} &= q_{n+1} r_n \end{align*} \]

假设算法在相除到互素时退出,此时 \(r_n = 1\)。我们使用倒数第一个式子中的 \(r_{n-1}\) 替换倒数第二个式子中的 \(r_{n-1}\),得到 \(r_{n-2} = A_n r_{n-1} + 1\),即 \(1 = r_{n-2} - A_n r_{n-1}\)。于是,我们再结合倒数第三个式子,使用 \(r_{n-1} = r_{n-3} - A_{n-1} r_{n-2}\) 替换第二个式子中的 \(r_{n-1}\),得到 \(1 = r_{n-2} - A_n(r_{n-3} - A_{n-1} r_{n-2}) = - A_n r_{n-3} + (1 + A_n A_{n-1})r_{n-2}\)。其中,\(A_i\) 是多项式。我们比较替换替换操作前后的式子,发现 \(r_i\) 往前递推了 \(1\) 次得到 \(r_{i-1}\),并乘以一个多项式,因此我们一直往前递推,可以得到存在整数(多项式计算的结果) \(m'\)\(n'\) 使得 \(1 = m'm_1 + n'n_1\),得证。

上式可以引出一个重要定理

\[k \mid m \ and \ k \mid n \Leftrightarrow k \mid \gcd(m,n). \]

证明如下,如果 \(k\) 整除 \(m\)\(n\) 这两者,它就整除 \(m'm+n'n\),所以它整除 \(\gcd(m,n)\)。反过来,如果 \(k\) 整除 \(\gcd(m,n)\) ,它就整除 \(m\) 的一个因子和 \(n\) 的一个因子,所以它整除 \(m\)\(n\) 这两者。

posted @ 2025-02-24 14:42  木杉的园子  阅读(37)  评论(0)    收藏  举报