数论漫步

数论漫步

贝祖定理(Bézout’s identity),当 a, b 皆非零时,以下不定式的整数解 x, y 必存在:

$$ ax + by = gcd(a,b) $$

上述问题等价于,当 \(a, b\) 互质时,即 \(gcd(a, b) = 1\)(通常记为 \(d\)), 整数解 \(x, y\) 必存在:

$$ ax + by = 1 $$

因为原式可表示为

$$ \begin{aligned} a = da' \\ b = db' \end{aligned} $$

此时 \(a', b'\) 互质,代入原式,两边除以 \(d\),便得等价形态:

$$ a'x + b'y = 1 $$

换句话说,为什么两个互质数,你加我减,总能凑出 1 呢?

一个数总是另一个数的线性组合 #

因为 a 总能表达为 b 的某种线性组合;设 a 大 b 小:

$$ a = qb + r\quad(1 ≤ r ≤ b-1) $$

即,a 模 b 等于 r。

而 a 乘上 \([1,b-1]\) 中的任一个数,余数依然在 \([1,b-1]\)里,不可能有碰撞。因为如果 \(ab'\) 和 \(ab''\) 模 b 同余:

$$ ab' ≡ ab''\pmod{b}\quad(1 ≤ b' < b'' ≤ b-1) $$

则:

$$ b\mid a(b''-b') $$

因 a, b 互质,只能:

$$ b\mid(b''-b') $$

这是不可能的,因为有以下前提:

$$ 0 < b'' - b' < b $$

一个更小的数怎能被一个更大的数整除?

显然,\([1,b-1]\) 个乘数,乘以 a,会一对一映射到 \([1,b-1]\) 个余数里,只会打乱顺序,但无冲突。那么必然有一个乘数,得到余数 1。

乘法逆元 #

这唯一乘数,称为 \(a\) 模 \(b\) 的乘法逆元。如 8 和 3 互质:

$$ \begin{aligned} 8\bmod{3} &= 2 \\ (2 * 2)\bmod{3} ≡ (8*2)\bmod{3} &= 1 \end{aligned} $$

即 8 和 2 模 3 同余 1,2 是 8 在模 3 下的逆元。

b 是质数时 #

a 和 b 互质时,即 a 模 b 的余数 r 和 b 互质(否则,他们共享更小的因子),所有 r 组成的集合,是理论最大余数集合 \([1,b-1]\) 的子集,即:

$$ U(b)=\{r\in\{1,\ldots,b-1\}\mid\gcd(r,b)=1\} $$

b 是质数 p 时,理论最大余数集合 \([1,p-1]\) 里的所有元素,都与 p 互质,于是 r 不再是子集。根据前面的推论,r 的集合(即 a 的集合,所有 a 的可能性)里的每个元素,都依然存在唯一乘法逆元。

两个例外,分别是 1 和 p - 1。

1 是单位元 #

任何余数 r 乘以 1 模 n 都还是 r,即 1 在模数乘法运算下,没有任何效果,这就是群论里的单位元。

$$ r * 1\bmod{n} = r\quad(1 < r < n) $$

也可以说,1(单位元)的逆元是自身。

p - 1 逆元是自身 #

模质数 p 时,有以下规律:

$$ \begin{aligned} 1(p - 1)\bmod{p} &= p - 1 \\ 2(p - 1)\bmod{p} &= p - 2 \\ ... \\ (p - 1)(p - 1)\bmod{p} &= p - (p - 1) = 1 \\ p(p - 1)\bmod{p} &= p - p = 0 \\ \end{aligned} $$

类似于,第一圈少走一步,再绕一圈,只会更少一步,以此类推,直到走了 p 圈,才能补回来。

自身即逆元 #

这两个特例,其实就是以下式的解:

$$ \begin{aligned} r^2 \equiv 1 \pmod{p} \\ r^2 - 1\equiv 0 \pmod{p} \\ (r+1)(r-1)\equiv 0 \pmod{p} \end{aligned} $$

即 p 能整除左侧:

$$ \begin{aligned} p\mid(r+1)(r-1) \end{aligned} $$

因 p 是质数, 它至少要能整除 \(r+1\) 或 \(r-1\) 中任一个,而 r 是模 p 下的余数,只剩两种可能:

$$ \begin{aligned} p\mid(r+1) \implies r+1 = p \\ p\mid(r-1) \implies r-1 = 0 \end{aligned} $$

于是:

$$ r=p-1 \quad\text{或}\quad r=1 $$

威尔逊定理 #

基于上述结论,对质数 p 的所有余数,除了 1 和 p - 1 以外,其他任何一个余数 r,都必定有集合内的另一个余数 \(r^{-1}\) 作为逆元,两两配对:

$$ rr^{-1} \equiv 1 \pmod p $$

把所有余数相乘,即 p - 1 的阶乘,因为两两配对的余数们,都互相取消了,最终只剩下 1 和 p - 1:

$$ \begin{aligned} (p-1)! \bmod{p} &= 1*(p-1) \bmod{p} \\ &= p - 1 \end{aligned} $$

标准写法:

$$ (p-1)!\equiv p-1\equiv-1\pmod p. $$

这是数论里的基础定理之一,威尔逊定理。

GCD是尺子上的最小单位 #

回过头来看贝祖定理,当 \(gcd(a, b) = d\) 时,a 和 b 无论怎么凑,都只能得到 k 份 d,最小 0 份,即 a 份 b 减 b 份 a,ab - ba = 0。当 d 大于 1 时,如何也不可能通过 a 和 b 的线性组合,凑出 1。

假设要找一个数 \(x\),同时满足:

\[ x\equiv r_a\pmod a \]

和:

\[ x\equiv r_b\pmod b. \]

第一式表示:

\[ x=r_a+ma \]

第二式表示:

\[ x=r_b+nb \]

其中 \(m,n\) 是整数。二者要描述同一个 \(x\),就必须有:

\[ r_a+ma=r_b+nb. \]

移项:

\[ r_b-r_a=ma-nb. \]

右边正是 \(a,b\) 的整数线性组合,即 \(r_b - r_a\) 必须是 \(gcd(a,b) = d\) 的倍数:

$$ d\mid(r_b-r_a) $$

比如 6 和 11 能凑出 1,显而易见,\(2 * 6 - 11 = 1\)。但 6 和 10 凑不出,因为那要求:

$$ r_b-r_a = 1 $$

它不是 d = 2 的倍数,甚至小于 d。所以 6 和 10 只能凑出 2 的倍数,那是他们这个离散世界里的最小单位。下次有人问,如何用 4 升和 6 升的量杯,量出 3 升水,你可以直接回答不可能。

自然数的合成公式 #

任意自然数,必定由一个或多个质数 \(p^k\) 相乘而得。因为其要么是质数,要么是合数,合数便能继续拆分,直到只剩质数因子为止。

一个数只有一种合成方案。为什么?假如有两种合成法,先约掉共享的质因子,得到:

$$ p_1p_2\,...\,p_m = q_1q_2\,...\,q_n $$

相除:

$$ 1 = \frac{p_1p_2\,...\,p_m}{q_1q_2\,...\,q_n} $$

因为分子分母皆为质数,不存在任何其他大于 1 的因子,分子不可能整除分母,除非相等,那便刚好证明了唯一性。更明显的,不可能有两个不同的数用同一份合成公式,因为那显然就是一个数了。

所以任意自然数可以写成:

$$ n = p_1^{k_1}p_2^{k_2}\cdots p_m^{k_m} $$

互质数的数量 #

小于自然数 n 的数里,与 n 互质的数,有多少?

当 \(n = p^k\):

$$ \varphi(p^k) = p^k - p^{k-1} $$

因为 \(p^k\) 个数里,含有因子 p 的数有 \(p^{k-1}\) 个(最后一项即是 \(p^k\) 自身):

$$ p,\,2p,\,3p\,...\,p^{k-1}•p $$

当 k = 1 时,就是经典形式,显而易见,质数的互质因子们,就是小于它的所有自然数:

$$ \varphi(p) = p - 1 $$

当 n 是两个互质数合成时(多个同理)