在数论领域中,我们通常规定正整数集 N = { 1 , 2 , ⋯ } \mathbb N = \{1, 2, \cdots\} N = { 1 , 2 , ⋯ } ,非负整数集 N 0 = { 0 , 1 , 2 , ⋯ } \mathbb N_0 = \{0, 1, 2, \cdots\} N 0 = { 0 , 1 , 2 , ⋯ } .
带余除法
设 a , b ∈ Z a, b \in \mathbb Z a , b ∈ Z ,b ≠ 0 b \ne 0 b = 0 ,则存在唯一的 q , r ∈ Z q, r \in \mathbb Z q , r ∈ Z ,满足 a = q b + r a = qb + r a = q b + r ,0 ≤ r < ∣ b ∣ 0 \le r < |b| 0 ≤ r < ∣ b ∣ .
证明
考虑 S = { a − q b : q ∈ Z } ∩ N 0 S = \{ a - qb : q \in \mathbb Z \} \cap \mathbb N_0 S = { a − q b : q ∈ Z } ∩ N 0 ,显然 S ≠ ∅ S \neq \empty S = ∅ (Archimedes 公理 ),由于 ( N 0 , ≤ ) (\mathbb N_0, \le) ( N 0 , ≤ ) 是良序的 ,总可取 r 0 = min S r_0 = \min S r 0 = min S ,设 r 0 = a − q 0 b r_0 = a - q_0 b r 0 = a − q 0 b .我们将证明 r 0 < ∣ b ∣ r_0 < |b| r 0 < ∣ b ∣ ,且这样的 r 0 r_0 r 0 是唯一的.(反证法) 假设 r 0 ≥ ∣ b ∣ r_0 \ge |b| r 0 ≥ ∣ b ∣ ,则
0 ≤ r 0 − ∣ b ∣ = a − q 0 b − ∣ b ∣ ∈ S 0 \le r_0 - |b| = a - q_0 b - |b| \in S 0 ≤ r 0 − ∣ b ∣ = a − q 0 b − ∣ b ∣ ∈ S 这与 r 0 = min S r_0 = \min S r 0 = min S 矛盾,故 r 0 < ∣ b ∣ r_0 < |b| r 0 < ∣ b ∣ ,存在性得证.再设
a = q 1 b + r 1 = q 2 b + r 2 a = q_1b + r_1 = q_2 b + r_2 a = q 1 b + r 1 = q 2 b + r 2 其中 q 1 , r 1 , q 2 , r 2 ∈ Z q_1, r_1, q_2, r_2 \in \mathbb Z q 1 , r 1 , q 2 , r 2 ∈ Z ,且 r 1 , r 2 ∈ [ 0 , ∣ b ∣ ) r_1, r_2 \in [0, |b|) r 1 , r 2 ∈ [ 0 , ∣ b ∣ ) ,两式相减得
( q 1 − q 2 ) b = r 1 − r 2 ∈ ( − ∣ b ∣ , ∣ b ∣ ) (q_1 - q_2)b = r_1 - r_2 \in (-|b|, |b|) ( q 1 − q 2 ) b = r 1 − r 2 ∈ ( − ∣ b ∣ , ∣ b ∣ ) 显然只有 q 1 = q 2 q_1 = q_2 q 1 = q 2 ,唯一性得证.
本质上,带余除法就是从数轴上的点 a a a 出发,以 b b b 为步进,移动至某个长度为 ∣ b ∣ |b| ∣ b ∣ 半开半闭的目标区间内 .
因为步长和区间长一致,所以可达,区间内存在落点;
因为区间半开半闭,区间内必然有且仅有一个落点.
推论
(零 ) 若 a = 0 a = 0 a = 0 ,则 q = r = 0 q = r = 0 q = r = 0 .
(符号 ) 在数轴上,从点 a a a 出发,到达 [ 0 , ∣ b ∣ ) [0, |b|) [ 0 , ∣ b ∣ ) 内.当 b > 0 b > 0 b > 0 时,q > 0 q > 0 q > 0 表示左移,q < 0 q < 0 q < 0 表示右移.
a a a b b b q q q + + + + + + ≥ 0 \ge 0 ≥ 0 + + + − - − ≤ 0 \le 0 ≤ 0 − - − + + + − - − − - − − - − + + +
(折半 ) 若 a ≥ b > 0 a \ge b > 0 a ≥ b > 0 ,则 r < a / 2 r < a / 2 r < a /2 ,即 r < min ( ∣ b ∣ , a / 2 ) r < \min(|b|, a / 2) r < min ( ∣ b ∣ , a /2 ) .
推论 3 的证明
容易得知 q > 0 q > 0 q > 0 ,即 q ≥ 1 q \ge 1 q ≥ 1 .(反证法) 假设 r ≥ a / 2 r \ge a / 2 r ≥ a /2 ,则
0 < r < b ≤ q b = a − r ≤ a / 2 0 < r < b \le qb = a - r \le a / 2 0 < r < b ≤ q b = a − r ≤ a /2 显然矛盾.
直观上讲,剃平后的 a − r a - r a − r 是 b b b 的倍数,故 b ≤ a − r b \le a - r b ≤ a − r ,但又要 b > r b > r b > r ,因此临界情况是折半.
C++
在 C/C++ 中,a / b 如何取整,取决于编译器的具体实现.
但从 C99 和 C++11 起,标准规定:商向零取整 ,即直接舍弃小数部分.
a % b 被定义为 a - a / b,因此取模结果的符号取决于 / 如何取整.以下断言保证为真:
形式化地,商向零取整的带余除法 a = q b + r a = qb + r a = q b + r 中,r r r 的目标区间不是 [ 0 , ∣ b ∣ ) [0, |b|) [ 0 , ∣ b ∣ ) ,而是
r ∈ { [ 0 , ∣ b ∣ ) , a ≥ 0 , ( − ∣ b ∣ , 0 ] , a < 0. r \in
\begin{cases}
[0, |b|), & a \ge 0, \\
(-|b|, 0], & a < 0.
\end{cases} r ∈ { [ 0 , ∣ b ∣ ) , ( − ∣ b ∣ , 0 ] , a ≥ 0 , a < 0. 整除
在带余除法 a = q b + r a = qb + r a = q b + r 中,若 r = 0 r = 0 r = 0 ,称 b b b 整除 a a a ,b b b 是 a a a 的因数 ,a a a 是 b b b 的倍数 ,记作 b ∣ a b \mid a b ∣ a .
推论
(零 ) n ∣ 0 n \mid 0 n ∣ 0 对 n ≠ 0 n \ne 0 n = 0 恒成立,即 0 0 0 的因数是所有非零整数 .
(幺 ) n ∣ 1 n \mid 1 n ∣ 1 当且仅当 n = ± 1 n = \pm 1 n = ± 1 ,即 1 1 1 的因数只有 ± 1 \pm 1 ± 1 .
(凡因 ) ± 1 ∣ n \pm 1 \mid n ± 1 ∣ n 和 ± n ∣ n \pm n \mid n ± n ∣ n 都恒成立,即平凡因数 .
(正负 ) ± a ∣ ± b \pm a \mid \pm b ± a ∣ ± b ,± a ∣ ∓ b \pm a \mid \mp b ± a ∣ ∓ b 互相等价,即正负不影响因数组成 .
(有界 ) 若 a ∣ b a \mid b a ∣ b 且 b ≠ 0 b \ne 0 b = 0 ,则 ∣ a ∣ ≤ ∣ b ∣ |a| \le |b| ∣ a ∣ ≤ ∣ b ∣ ,即因数向 0 0 0 靠拢 .
(自反 ) 若 a ∣ b a \mid b a ∣ b 且 b ∣ a b \mid a b ∣ a ,则 ∣ a ∣ = ∣ b ∣ |a| = |b| ∣ a ∣ = ∣ b ∣ .
(传递 ) 若 a ∣ b a \mid b a ∣ b 且 b ∣ c b \mid c b ∣ c ,则 a ∣ c a \mid c a ∣ c .
(消去 ) 若 k ≠ 0 k \ne 0 k = 0 ,则 k a ∣ k b ka \mid kb ka ∣ kb 等价于 a ∣ b a \mid b a ∣ b .
(分解 ) 若 a b ∣ m ab \mid m ab ∣ m ,则 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m .
(组合 ) 若 e ∣ a e \mid a e ∣ a 且 e ∣ b e \mid b e ∣ b ,则 e ∣ ( k a + l b ) e \mid (ka + lb) e ∣ ( ka + l b ) ,其中 k , l ∈ Z k, l \in \mathbb Z k , l ∈ Z .
推论 5 的证明
设 b = a d ≠ 0 b = ad \ne 0 b = a d = 0 ,则 d ≠ 0 d \ne 0 d = 0 ,即 ∣ d ∣ ≥ 1 |d| \ge 1 ∣ d ∣ ≥ 1 ,于是
∣ b ∣ = ∣ a d ∣ = ∣ a ∣ ∣ d ∣ ≥ ∣ a ∣ |b| = |ad| = |a| |d| \ge |a| ∣ b ∣ = ∣ a d ∣ = ∣ a ∣∣ d ∣ ≥ ∣ a ∣ GCD 和 LCM# gcd 和 lcm
今有 a , b ∈ Z a, b \in \mathbb Z a , b ∈ Z ,a 2 + b 2 > 0 a^2 + b^2 > 0 a 2 + b 2 > 0 .记 D D D 为 a a a 和 b b b 的正公因数集,M M M 为 a a a 和 b b b 的正公倍数集.
我们称 a a a 和 b b b 的最大 (正) 公因数 为 gcd ( a , b ) = max D \gcd(a, b) = \max D g cd( a , b ) = max D ,最小 (正) 公倍数 lcm ( a , b ) = min M \text{lcm}(a, b) = \min M lcm ( a , b ) = min M .
由于 1 ∈ D 1 \in D 1 ∈ D ,故 D ≠ ∅ D \ne \empty D = ∅ ,又因为 d ≤ ∣ a ∣ d \le |a| d ≤ ∣ a ∣ 且 d ≤ ∣ b ∣ d \le |b| d ≤ ∣ b ∣ ,因此 D D D 是有限集,gcd ( a , b ) \gcd(a, b) g cd( a , b ) 必然存在;
由于 ∣ a b ∣ ∈ M |ab| \in M ∣ ab ∣ ∈ M ,故 M ≠ ∅ M \ne \empty M = ∅ ,又因为 M ⊂ N M \sub \mathbb N M ⊂ N ,且 ( N , ≤ ) (\mathbb N, \le) ( N , ≤ ) 是良序的,因此 lcm ( a , b ) \text{lcm}(a, b) lcm ( a , b ) 必然存在.
gcd 的推论
(零 ) gcd ( 0 , n ) = n \gcd(0, n) = n g cd( 0 , n ) = n ,其中 n ≠ 0 n \ne 0 n = 0 .
(幺 ) gcd ( 1 , n ) = 1 \gcd(1, n) = 1 g cd( 1 , n ) = 1 .
(对称 ) gcd ( a , b ) = gcd ( b , a ) \gcd(a, b) = \gcd(b, a) g cd( a , b ) = g cd( b , a ) .
(正负 ) gcd ( a , b ) = gcd ( ∣ a ∣ , ∣ b ∣ ) \gcd(a, b) = \gcd(|a|, |b|) g cd( a , b ) = g cd( ∣ a ∣ , ∣ b ∣ ) .
(线性 ) 若 k ∈ Z k \in \mathbb Z k ∈ Z ,k ≠ 0 k \ne 0 k = 0 ,则 gcd ( k a , k b ) = ∣ k ∣ gcd ( a , b ) \gcd(ka, kb) = |k|\gcd(a, b) g cd( ka , kb ) = ∣ k ∣ g cd( a , b ) .
(幂性 ) 若 k ∈ Z k \in \mathbb Z k ∈ Z ,则 gcd ( a k , b k ) = gcd ( a , b ) k \gcd(a^k, b^k) = \gcd(a, b)^k g cd( a k , b k ) = g cd( a , b ) k .
(最近公共祖先 ) e ∣ gcd ( a , b ) e \mid \gcd(a, b) e ∣ g cd( a , b ) ,当且仅当 e ∣ a e \mid a e ∣ a 且 e ∣ b e \mid b e ∣ b .
推论 5 的证明
这里会使用到 Bézout 定理及其推论,详见下文.
一种证明方法是观察“张成空间”.
gcd ( k a , k b ) Z = span ( k a , k b ) = k span ( a , b ) = k gcd ( a , b ) Z \gcd(ka, kb) \mathbb Z = \text{span}(ka, kb) = k \,\text{span}(a, b) = k \gcd(a, b) \mathbb Z g cd( ka , kb ) Z = span ( ka , kb ) = k span ( a , b ) = k g cd( a , b ) Z 因此 ∣ gcd ( k a , k b ) ∣ = ∣ k gcd ( a , b ) ∣ |\gcd(ka, kb)| = |k \gcd(a, b)| ∣ g cd( ka , kb ) ∣ = ∣ k g cd( a , b ) ∣ ,即 gcd ( k a , k b ) = ∣ k ∣ gcd ( a , b ) \gcd(ka, kb) = |k| \gcd(a, b) g cd( ka , kb ) = ∣ k ∣ g cd( a , b ) .
另一种证明方法是相互整除.
先证 k gcd ( a , b ) ∣ gcd ( k a , k b ) k \gcd(a, b) \mid \gcd(ka, kb) k g cd( a , b ) ∣ g cd( ka , kb ) :由 Bézout 推论,只需证 k gcd ( a , b ) ∣ k a k\gcd(a, b) \mid ka k g cd( a , b ) ∣ ka ,消去 k k k 后显然成立.
再证 gcd ( k a , k b ) ∣ k gcd ( a , b ) \gcd(ka, kb) \mid k \gcd(a, b) g cd( ka , kb ) ∣ k g cd( a , b ) :欲将其转化为 gcd ( k a , k b ) / k ∣ gcd ( a , b ) \gcd(ka, kb) / k \mid \gcd(a, b) g cd( ka , kb ) / k ∣ g cd( a , b ) ,需 k ∣ gcd ( k a , k b ) k \mid \gcd(ka, kb) k ∣ g cd( ka , kb ) ,而这是显然的,因为 k ∣ k a k \mid ka k ∣ ka ,随后要证 gcd ( k a , k b ) / k ∣ a \gcd(ka, kb) / k \mid a g cd( ka , kb ) / k ∣ a ,两边同乘以 k k k 显然成立.
因此 ∣ gcd ( k a , k b ) ∣ = ∣ k gcd ( a , b ) ∣ |\gcd(ka, kb)| = |k \gcd(a, b)| ∣ g cd( ka , kb ) ∣ = ∣ k g cd( a , b ) ∣ ,即 gcd ( k a , k b ) = ∣ k ∣ gcd ( a , b ) \gcd(ka, kb) = |k| \gcd(a, b) g cd( ka , kb ) = ∣ k ∣ g cd( a , b ) .
推论 6 的证明
这里会使用到互素相关的结论,详见下文.
记 d = gcd ( a , b ) d = \gcd(a, b) d = g cd( a , b ) ,则 a d ⊥ b d \dfrac{a}{d} \perp \dfrac{b}{d} d a ⊥ d b ,因此 ( a d ) k ⊥ ( b d ) k \Big(\dfrac{a}{d}\Big)^k \perp \Big(\dfrac{b}{d}\Big)^k ( d a ) k ⊥ ( d b ) k ,
gcd ( a k , b k ) = d k gcd ( ( a d ) k , ( b d ) k ) = d k = gcd ( a , b ) k \gcd(a^k, b^k) = d^k \gcd\left(\Big(\dfrac{a}{d}\Big)^k, \Big(\dfrac{b}{d}\Big)^k\right) = d^k = \gcd(a, b)^k g cd( a k , b k ) = d k g cd( ( d a ) k , ( d b ) k ) = d k = g cd( a , b ) k 推论 7 的证明
(⇒ \Rightarrow ⇒ ) e ∣ gcd ( a , b ) ∣ a e \mid \gcd(a, b) \mid a e ∣ g cd( a , b ) ∣ a ,e ∣ gcd ( a , b ) ∣ b e \mid \gcd(a, b) \mid b e ∣ g cd( a , b ) ∣ b .
(⇐ \Leftarrow ⇐ ) 由 Bézout 定理,设 gcd ( a , b ) = k a + l b \gcd(a, b) = ka + lb g cd( a , b ) = ka + l b ,k , l ∈ Z k,l \in \mathbb Z k , l ∈ Z .由 e ∣ a e \mid a e ∣ a 且 e ∣ b e \mid b e ∣ b 得 e ∣ ( k a + l b ) = gcd ( a , b ) e \mid (ka + lb) = \gcd(a, b) e ∣ ( ka + l b ) = g cd( a , b ) .
互素
若 gcd ( a , b ) = 1 \gcd(a, b) = 1 g cd( a , b ) = 1 ,则称 a a a 与 b b b 互素 ,记作 a ⊥ b a \perp b a ⊥ b .
推论
(零 ) 与 0 0 0 互素的整数只有 ± 1 \pm 1 ± 1 .
(幺 ) ± 1 \pm 1 ± 1 与所有整数互素.
(互素化 ) 记 d = gcd ( a , b ) d = \gcd(a, b) d = g cd( a , b ) ,则 a d ⊥ b d \dfrac{a}{d} \perp \dfrac{b}{d} d a ⊥ d b .
(排除异己 ) 若 a ⊥ b a \perp b a ⊥ b ,则 a ∣ b c a \mid bc a ∣ b c 蕴含 a ∣ c a \mid c a ∣ c .
(排除异己 ) 若 a ⊥ b a \perp b a ⊥ b ,则 gcd ( a , b c ) = gcd ( a , c ) \gcd(a, bc) = \gcd(a, c) g cd( a , b c ) = g cd( a , c ) .
(Euclid 互素定理 ) a ⊥ m a \perp m a ⊥ m 且 b ⊥ m b \perp m b ⊥ m ,当且仅当 a b ⊥ m ab \perp m ab ⊥ m .
(互素组对 ) 若 ∀ i , j \forall\, i, j ∀ i , j 有 a i ⊥ b j a_i \perp b_j a i ⊥ b j ,则 ∏ i a i ⊥ ∏ j b j \prod_i a_i \perp \prod_j b_j ∏ i a i ⊥ ∏ j b j .
(互素乘积 ) 若 a ⊥ b a \perp b a ⊥ b ,则 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m 蕴含 a b ∣ m ab \mid m ab ∣ m .
(一般乘积 ) 记 d = gcd ( a , b ) d = \gcd(a, b) d = g cd( a , b ) ,则 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m 蕴含 a b d | m \left. \dfrac{ab}{d} \,\middle|\, m \right. d ab m ,即 lcm ( a , b ) ∣ m \text{lcm}(a, b) \mid m lcm ( a , b ) ∣ m .
(互素空间的交 ) 若 a ⊥ b a \perp b a ⊥ b ,则 a Z ∩ b Z = a b Z a \mathbb Z \cap b \mathbb Z = ab \mathbb Z a Z ∩ b Z = ab Z .
(一般空间的交 ) 记 d = gcd ( a , b ) d = \gcd(a, b) d = g cd( a , b ) ,则 a Z ∩ b Z = a b d Z = lcm ( a , b ) Z a \mathbb Z \cap b \mathbb Z = \dfrac{ab}{d} \, \mathbb Z = \text{lcm}(a, b) \,\mathbb Z a Z ∩ b Z = d ab Z = lcm ( a , b ) Z .
推论 3 的证明
记 d = gcd ( a , b ) d = \gcd(a, b) d = g cd( a , b ) ,则 d ∣ a d \mid a d ∣ a 且 d ∣ b d \mid b d ∣ b ,于是
d = gcd ( a , b ) = d gcd ( a d , b d ) d = \gcd(a, b) = d \gcd\Big(\dfrac{a}{d}, \dfrac{b}{d}\Big) d = g cd( a , b ) = d g cd( d a , d b ) 可得 gcd ( a d , b d ) = 1 \gcd\Big(\dfrac{a}{d}, \dfrac{b}{d}\Big) = 1 g cd( d a , d b ) = 1 ,因此 a d ⊥ b d \dfrac{a}{d} \perp \dfrac{b}{d} d a ⊥ d b .
推论 4 的证明
gcd ( a , b ) = 1 \gcd(a, b) = 1 g cd( a , b ) = 1 ,由 Bézout 定理,设
k a + l b = 1 ka + lb = 1 ka + l b = 1 由 a ∣ b c a \mid bc a ∣ b c ,设 a d = b c ad = bc a d = b c .欲证 a ∣ c a \mid c a ∣ c ,为消去 b b b ,上式两边同乘以 c c c ,代入得
k a c + l b c = k a c + l a d = a ( k c + l d ) = c kac + lbc = kac + lad = a(kc + ld) = c ka c + l b c = ka c + l a d = a ( k c + l d ) = c 因此 a ∣ c a \mid c a ∣ c .
推论 5 的证明
设 d = gcd ( a , b c ) d = \gcd(a, bc) d = g cd( a , b c ) ,e = gcd ( a , c ) e = \gcd(a, c) e = g cd( a , c ) .
由 a ⊥ b a \perp b a ⊥ b 得 d ⊥ b d \perp b d ⊥ b ,又 d ∣ b c d \mid bc d ∣ b c ,故 d ∣ c d \mid c d ∣ c ,结合 d ∣ a d \mid a d ∣ a 可得 d ∣ e d \mid e d ∣ e .
由 e ∣ a e \mid a e ∣ a 且 e ∣ c ∣ b c e \mid c \mid bc e ∣ c ∣ b c 得 e ∣ d e \mid d e ∣ d .
故 ∣ d ∣ = ∣ e ∣ |d| = |e| ∣ d ∣ = ∣ e ∣ ,即 d = e d = e d = e .
推论 6 的证明
下面使用 Bézout 定理进行证明:
(⇒ \Rightarrow ⇒ ) 存在 k 1 , l 1 , k 2 , l 2 ∈ Z k_1, l_1, k_2, l_2 \in \mathbb Z k 1 , l 1 , k 2 , l 2 ∈ Z ,使得
k 1 a + l 1 m = 1 k 2 b + l 2 m = 1 \begin{aligned}
k_1a + l_1m &= 1 \\
k_2b + l_2m &= 1
\end{aligned} k 1 a + l 1 m k 2 b + l 2 m = 1 = 1 两式相乘,整理得
( k 1 k 2 ) a b + ( k 1 l 2 a + k 2 l 1 b + l 1 l 2 m ) m = 1 (k_1k_2)ab + (k_1l_2a + k_2l_1b + l_1l_2m)m = 1 ( k 1 k 2 ) ab + ( k 1 l 2 a + k 2 l 1 b + l 1 l 2 m ) m = 1 于是 gcd ( a b , m ) = 1 \gcd(ab, m) = 1 g cd( ab , m ) = 1 ,因此 a b ⊥ m ab \perp m ab ⊥ m .
(⇐ \Leftarrow ⇐ ) 存在 k , l ∈ Z k, l \in \mathbb Z k , l ∈ Z ,使得
k a b + l m = 1 kab + lm = 1 kab + l m = 1 我们有
( k b ) a + l m = 1 ( k a ) b + l m = 1 \begin{aligned}
(kb)a + lm &= 1 \\
(ka)b + lm &= 1
\end{aligned} ( kb ) a + l m ( ka ) b + l m = 1 = 1 于是 gcd ( a , m ) = 1 \gcd(a, m) = 1 g cd( a , m ) = 1 且 gcd ( b , m ) = 1 \gcd(b, m) = 1 g cd( b , m ) = 1 ,因此 a ⊥ m a \perp m a ⊥ m 且 b ⊥ m b \perp m b ⊥ m .
从算术基本定理的角度来看,这个定理是显然的.
推论 8 的证明
由于 a ∣ m a \mid m a ∣ m ,b ∣ m b \mid m b ∣ m ,不妨设 m = a k m = ak m = ak ,则 b ∣ a k b \mid ak b ∣ ak ,又因为 b ⊥ a b \perp a b ⊥ a ,所以 b ∣ k b \mid k b ∣ k ,从而 a b ∣ a k = m ab \mid ak = m ab ∣ ak = m .
推论 9 的证明
记 d = gcd ( a , b ) d = \gcd(a, b) d = g cd( a , b ) ,由于 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m ,不妨设 m = a k m = ak m = ak .
则 b ∣ a k b \mid ak b ∣ ak ,b d | a d k \left. \dfrac{b}{d} \,\middle|\, \dfrac{a}{d}k \right. d b d a k ,而 b d ⊥ a d \dfrac{b}{d} \perp \dfrac{a}{d} d b ⊥ d a ,故 b d | k \left. \dfrac{b}{d} \,\middle|\, k \right. d b k ,因此 a b d | a k = m \left. \dfrac{ab}{d} \,\middle|\, ak \right. = m d ab ak = m .
推论 10 的证明
记 M 1 = a Z ∩ b Z M_1 = a \mathbb Z \cap b \mathbb Z M 1 = a Z ∩ b Z ,M 2 = a b Z M_2 = ab \mathbb Z M 2 = ab Z .
任取 m ∈ M 1 m \in M_1 m ∈ M 1 ,则 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m ,又因 a ⊥ b a \perp b a ⊥ b ,故 a b ∣ m ab \mid m ab ∣ m ,即 m ∈ M 2 m \in M_2 m ∈ M 2 ,于是 M 1 ⊂ M 2 M_1 \sub M_2 M 1 ⊂ M 2 .
任取 m ∈ M 2 m \in M_2 m ∈ M 2 ,则 a b ∣ m ab \mid m ab ∣ m ,得 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m ,即 m ∈ M 1 m \in M_1 m ∈ M 1 ,于是 M 2 ⊂ M 1 M_2 \sub M_1 M 2 ⊂ M 1 .
故 M 1 = M 2 M_1 = M_2 M 1 = M 2 .
推论 11 的证明
记 d = gcd ( a , b ) d = \gcd(a, b) d = g cd( a , b ) ,M 1 = a Z ∩ b Z M_1 = a \mathbb Z \cap b \mathbb Z M 1 = a Z ∩ b Z ,M 2 = a b d Z M_2 = \dfrac{ab}{d} \, \mathbb Z M 2 = d ab Z .
任取 m ∈ M 1 m \in M_1 m ∈ M 1 ,则 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m ,于是 a b d | m ∈ M 2 \left. \dfrac{ab}{d} \,\middle|\, m \in M_2 \right. d ab m ∈ M 2 ,因此 M 1 ⊂ M 2 M_1 \sub M_2 M 1 ⊂ M 2 .
任取 m ∈ M 2 m \in M_2 m ∈ M 2 ,则 a b d | m \left. \dfrac{ab}{d} \,\middle|\, m \right. d ab m ,得 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m ,于是 m ∈ M 1 m \in M_1 m ∈ M 1 ,因此 M 2 ⊂ M 1 M_2 \sub M_1 M 2 ⊂ M 1 .
综上,M 1 = M 2 M_1 = M_2 M 1 = M 2 .
lcm 的推论
若 gcd ( a , b ) = 1 \gcd(a, b) = 1 g cd( a , b ) = 1 ,则 lcm ( a , b ) = ∣ a b ∣ \text{lcm}(a, b) = |ab| lcm ( a , b ) = ∣ ab ∣ .
gcd ( a , b ) lcm ( a , b ) = ∣ a b ∣ \gcd(a, b) \,\text{lcm}(a, b) = |ab| g cd( a , b ) lcm ( a , b ) = ∣ ab ∣ .
推论 1 的证明
任取 a a a 和 b b b 的 (正) 公倍数 m m m ,则 a ∣ m a \mid m a ∣ m 且 b ∣ m b \mid m b ∣ m ,又因 gcd ( a , b ) = 1 \gcd(a, b) = 1 g cd( a , b ) = 1 ,于是 a b ∣ m ab \mid m ab ∣ m .得 ∣ a b ∣ ≤ m |ab| \le m ∣ ab ∣ ≤ m ,而 ∣ a b ∣ |ab| ∣ ab ∣ 也是 a a a 和 b b b 的 (正) 公倍数,因此等号可以成立,lcm ( a , b ) = ∣ a b ∣ \text{lcm}(a, b) = |ab| lcm ( a , b ) = ∣ ab ∣ .
更直接的证法是:因为 a ⊥ b a \perp b a ⊥ b ,所以公倍数集
a Z ∩ b Z = a b Z a \mathbb Z \cap b \mathbb Z = ab \mathbb Z a Z ∩ b Z = ab Z 于是 lcm ( a , b ) = ∣ a b ∣ \text{lcm}(a, b) = |ab| lcm ( a , b ) = ∣ ab ∣ .
推论 2 的证明
可以通过相互整除证明,下面使用更直接的证明方法:
a Z ∩ b Z = a b gcd ( a , b ) Z a \mathbb Z \cap b \mathbb Z = \dfrac{ab}{\gcd(a, b)} \mathbb Z a Z ∩ b Z = g cd( a , b ) ab Z 于是 lcm ( a , b ) = ∣ a b gcd ( a , b ) ∣ \text{lcm}(a, b) = \left|\dfrac{ab}{\gcd(a, b)}\right| lcm ( a , b ) = g cd( a , b ) ab ,即 gcd ( a , b ) lcm ( a , b ) = ∣ a b ∣ \gcd(a, b) \,\text{lcm}(a, b) = |ab| g cd( a , b ) lcm ( a , b ) = ∣ ab ∣ .
Bézout 定理# 辗转相除法
设 a , b ∈ Z a, b \in \mathbb Z a , b ∈ Z ,且 a 2 + b 2 > 0 a^2 + b^2 > 0 a 2 + b 2 > 0 ,带余除法 a = q b + r a = qb + r a = q b + r ,只要 ∣ a − q b ∣ < ∣ b ∣ |a - qb| < |b| ∣ a − q b ∣ < ∣ b ∣ ,算法
gcd ( a , b ) = gcd ( b , a − q b ) = ⋯ \gcd(a, b) = \gcd(b, a - qb) = \cdots g cd( a , b ) = g cd( b , a − q b ) = ⋯ 将终止于 gcd ( d , 0 ) \gcd(d, 0) g cd( d , 0 ) ,此时 ∣ d ∣ |d| ∣ d ∣ 即为 gcd ( a , b ) \gcd(a, b) g cd( a , b ) .
正确性证明
记 D a b D_{ab} D ab 为 a a a 和 b b b 的公因数集,D b r D_{br} D b r 为 b b b 和 r r r 的公因数集,我们将证明 D a b = D b r D_{ab} = D_{br} D ab = D b r .
任取 d ∈ D a b d \in D_{ab} d ∈ D ab ,则 d ∣ ( a − q b ) = r d \mid (a - qb) = r d ∣ ( a − q b ) = r ,故 d ∈ D b r d \in D_{br} d ∈ D b r ,即 D a b ⊂ D b r D_{ab} \sub D_{br} D ab ⊂ D b r .
又任取 d ∈ D b r d \in D_{br} d ∈ D b r ,则 d ∣ ( q b + r ) = a d \mid (qb + r) = a d ∣ ( q b + r ) = a ,故 d ∈ D a b d \in D_{ab} d ∈ D ab ,即 D b r ⊂ D a b D_{br} \sub D_{ab} D b r ⊂ D ab .
因此 D a b = D b r D_{ab} = D_{br} D ab = D b r ,从而 gcd ( a , b ) = gcd ( b , r ) \gcd(a, b) = \gcd(b, r) g cd( a , b ) = g cd( b , r ) ,即 gcd ( a , b ) = gcd ( b , a − q b ) \gcd(a, b) = \gcd(b, a - qb) g cd( a , b ) = g cd( b , a − q b ) .
容易归纳证明 (固定步数后,寻找最小的一组 a a a 和 b b b 作为最差情况),当 a a a 和 b b b 为 Fibonacci 数列邻项时,算法达到最差计算复杂度 O ( log min ( a , b ) ) O(\log \min (a, b)) O ( log min ( a , b )) .由于每次带余除法都将余数折半,因此该算法十分高效.
向零取整
我们看到,辗转相除法的正确性仅依赖于 a a a 和 r r r 互相被线性组合表示,不过可终止性依赖于 ∣ a − q b ∣ < ∣ b ∣ |a - qb| < |b| ∣ a − q b ∣ < ∣ b ∣ ,因此可以让带余除法的商向零取整,即 C/C++ 的整数除法.
void gcd ( i64 a , i64 b , i64 & d ) {
assert (a != 0 || b != 0 );
for (cur = & a, pre = & b; * pre; std :: swap (cur, pre)) {
if ( std :: abs ( * cur) >= std :: abs ( * pre)) {
Bézout 定理
总存在 k , l ∈ Z k,l \in \mathbb Z k , l ∈ Z ,使得 gcd ( a , b ) = k a + l b \gcd(a, b) = ka + lb g cd( a , b ) = ka + l b ,即最大公因数总能用线性组合表示 .
证明
考虑辗转相除法
a = q 1 b + r 1 ⋮ r N − 2 = q N r N − 1 + r N r N − 1 = q N + 1 r N \begin{aligned}
a &= q_1 b + r_1 \\
&\hspace{0.525em}\vdots \\
r_{N-2} &= q_N r_{N-1} + r_N \\
r_{N-1} &= q_{N+1} r_{N}
\end{aligned} a r N − 2 r N − 1 = q 1 b + r 1 ⋮ = q N r N − 1 + r N = q N + 1 r N r 1 r_1 r 1 和 r 2 r_2 r 2 都可以表示成 a a a 和 b b b 的线性组合,归纳得知 r N r_N r N 也可以,gcd ( a , b ) = ∣ r N ∣ \gcd(a, b) = |r_N| g cd( a , b ) = ∣ r N ∣ 也可以.
推论
记 span ( a , b ) = { k a + l b : k , l ∈ Z } \text{span}(a, b) = \{ka + lb : k,l \in \mathbb Z\} span ( a , b ) = { ka + l b : k , l ∈ Z } ,则 span ( a , b ) = gcd ( a , b ) Z \text{span}(a, b) = \gcd(a, b) \mathbb Z span ( a , b ) = g cd( a , b ) Z .
证明
记 S a b = span ( a , b ) S_{ab} = \text{span}(a, b) S ab = span ( a , b ) ,d = gcd ( a , b ) d = \gcd(a, b) d = g cd( a , b ) .由 Bézout 定理知 d ∈ S a b d \in S_{ab} d ∈ S ab ,容易得到 d Z ⊂ S a b d \mathbb Z \sub S_{ab} d Z ⊂ S ab .另一方面,任取 k a + l b ∈ S a b ka + lb \in S_{ab} ka + l b ∈ S ab ,有 k a + l b = ( k a / d + l b / d ) d ∈ d Z ka + lb = (ka / d + lb / d) d \in d \mathbb Z ka + l b = ( ka / d + l b / d ) d ∈ d Z ,于是 S a b ⊂ d Z S_{ab} \sub d \mathbb Z S ab ⊂ d Z .因此 S a b = d Z S_{ab} = d \mathbb Z S ab = d Z .
可以说 gcd \gcd g cd 是“张成空间”的基 ,它告诉了我们有关该线性组合的全部信息.只要我们得到了 gcd \gcd g cd ,就能有序地获取所有线性组合.我们也可以通过观察“张成空间”来反推 gcd \gcd g cd 的一些性质.
循环群的子群
循环群 G = ⟨ g ⟩ G = \langle g \rangle G = ⟨ g ⟩ 的子群 H H H 必为循环群.设 I = { k ∈ Z : g k ∈ H } I = \{k \in \mathbb Z : g^k \in H\} I = { k ∈ Z : g k ∈ H } ,则 H = { g k ∈ G : k ∈ I } H = \{g^k \in G : k \in I\} H = { g k ∈ G : k ∈ I } .
若 H H H 是平凡群,显然也是循环群;
否则取 d = gcd I d = \gcd\,I d = g cdI ,由 Bézout 定理可知,d d d 可被 I I I 中所有数的线性组合表示.
因为 H H H 的封闭性,所以 d ∈ I d \in I d ∈ I .我们将证明 H = ⟨ g d ⟩ H = \langle g^d \rangle H = ⟨ g d ⟩ :一方面 ∀ k ∈ I \forall\, k \in I ∀ k ∈ I ,d ∣ k d \mid k d ∣ k ,故 I ⊂ d Z I \sub d \mathbb Z I ⊂ d Z ;
另一方面 H H H 是群,容易得知 I I I 是 Z \mathbb Z Z 的加法子群,又因为 d ∈ I d \in I d ∈ I ,故 d Z ⊂ I d \mathbb Z \sub I d Z ⊂ I .
所以 I = d Z I = d \mathbb Z I = d Z ,H = { g d k ∈ G : d k ∈ d Z } = { ( g d ) k ∈ G : k ∈ Z } = ⟨ g d ⟩ H = \{g^{dk} \in G : {dk} \in d \mathbb Z\} = \{(g^d)^k \in G : k \in \mathbb Z\} = \langle g^d \rangle H = { g d k ∈ G : d k ∈ d Z } = {( g d ) k ∈ G : k ∈ Z } = ⟨ g d ⟩ .
扩展 Euclid 算法
设 a , b ∈ Z a, b \in \mathbb Z a , b ∈ Z ,且 a 2 + b 2 > 0 a^2 + b^2 > 0 a 2 + b 2 > 0 ,欲寻找 gcd ( a , b ) \gcd(a, b) g cd( a , b ) 其中一种线性组合表示.考虑从
{ 1 ⋅ a + 0 ⋅ b = a 0 ⋅ a + 1 ⋅ b = b \begin{cases}
1 \cdot a + 0 \cdot b = a \\
0 \cdot a + 1 \cdot b = b
\end{cases} { 1 ⋅ a + 0 ⋅ b = a 0 ⋅ a + 1 ⋅ b = b 开始,对其增广矩阵
( 1 0 a 0 1 b ) \begin{pmatrix}
1 & 0 & a \\
0 & 1 & b
\end{pmatrix} ( 1 0 0 1 a b ) 进行有限次初等行变换,最终得到行
( k l gcd ( a , b ) ) \begin{pmatrix}
k & l & \gcd(a, b)
\end{pmatrix} ( k l g cd( a , b ) ) 对应的方程正是
k a + l b = gcd ( a , b ) ka + lb = \gcd(a, b) ka + l b = g cd( a , b ) 而这只需让每次初等行变换对应于增广列的辗转相除法的每一步即可:
⋯ → ( s t g m n h ) → ( m n h s − q m t − q n g − q h ) → ⋯ → ( k l gcd ( a , b ) K L 0 ) \cdots
\rightarrow
\begin{pmatrix}
s & t & g \\
m & n & h
\end{pmatrix}
\rightarrow
\begin{pmatrix}
m & n & h \\
s-qm & t-qn & g-qh
\end{pmatrix}
\rightarrow
\cdots
\rightarrow
\begin{pmatrix}
k & l & \gcd(a, b) \\
K & L & 0
\end{pmatrix} ⋯ → ( s m t n g h ) → ( m s − q m n t − q n h g − q h ) → ⋯ → ( k K l L g cd( a , b ) 0 ) void exgcd ( i64 a , i64 b , i64 & x , i64 & y , i64 & d ) {
assert (a != 0 || b != 0 );
i64 M[ 2 ][ 3 ] = {{ 1 , 0 , a}, { 0 , 1 , b}};
for (cur = M[ 0 ], pre = M[ 1 ]; pre[ 2 ]; std :: swap (cur, pre)) {
if ( std :: abs (cur[ 2 ]) >= std :: abs (pre[ 2 ])) {
x = cur[ 0 ], y = cur[ 1 ], d = cur[ 2 ];
if (d < 0 ) x = - x, y = - y, d = - d;
线性不定方程的特解
线性不定方程 a x + b y = m ax + by = m a x + b y = m 有解,当且仅当 gcd ( a , b ) ∣ m \gcd(a, b) \mid m g cd( a , b ) ∣ m .
此时设 m = e gcd ( a , b ) m = e \gcd(a, b) m = e g cd( a , b ) ,取 gcd ( a , b ) = k a + l b \gcd(a, b) = ka + lb g cd( a , b ) = ka + l b ,则
m = e ( k a + l b ) = a ⋅ e k + b ⋅ e l m = e(ka + lb) = a \cdot ek + b \cdot el m = e ( ka + l b ) = a ⋅ e k + b ⋅ e l 得到特解 ( x 0 , y 0 ) = ( e k , e l ) (x_0, y_0) = (ek, el) ( x 0 , y 0 ) = ( e k , e l ) .
线性不定方程的通解
若线性不定方程 a x + b y = m ax + by = m a x + b y = m 有特解 ( x 0 , y 0 ) (x_0, y_0) ( x 0 , y 0 ) ,则通解 (k ∈ Z k \in \mathbb Z k ∈ Z ) 为
{ x = x 0 + k ⋅ b gcd ( a , b ) y = y 0 − k ⋅ a gcd ( a , b ) \begin{cases}
x = x_0 + k \cdot \dfrac{b}{\gcd(a, b)} \\[1em]
y = y_0 - k \cdot \dfrac{a}{\gcd(a, b)}
\end{cases} ⎩ ⎨ ⎧ x = x 0 + k ⋅ g cd( a , b ) b y = y 0 − k ⋅ g cd( a , b ) a 通解的证明
已有 a x 0 + b y 0 = m ax_0 + by_0 = m a x 0 + b y 0 = m ,再设通解 ( x , y ) (x, y) ( x , y ) 满足 ,则
a ( x − x 0 ) = b ( y 0 − y ) a(x - x_0) = b(y_0 - y) a ( x − x 0 ) = b ( y 0 − y ) 对 a a a 和 b b b 互素化,得
a gcd ( a , b ) ( x − x 0 ) = b gcd ( a , b ) ( y 0 − y ) \dfrac{a}{\gcd(a, b)}(x - x_0) = \dfrac{b}{\gcd(a, b)}(y_0 - y) g cd( a , b ) a ( x − x 0 ) = g cd( a , b ) b ( y 0 − y ) 于是
a gcd ( a , b ) | b gcd ( a , b ) ( y 0 − y ) \left. \dfrac{a}{\gcd(a, b)} \,\middle|\, \dfrac{b}{\gcd(a, b)}(y_0 - y) \right. g cd( a , b ) a g cd( a , b ) b ( y 0 − y ) 又因为 a gcd ( a , b ) ⊥ b gcd ( a , b ) \dfrac{a}{\gcd(a, b)} \perp \dfrac{b}{\gcd(a, b)} g cd( a , b ) a ⊥ g cd( a , b ) b ,故
a gcd ( a , b ) | ( y 0 − y ) \left. \dfrac{a}{\gcd(a, b)} \,\middle|\, (y_0 - y) \right. g cd( a , b ) a ( y 0 − y ) 可设 a gcd ( a , b ) ⋅ k = y 0 − y \dfrac{a}{\gcd(a, b)} \cdot k = y_0 - y g cd( a , b ) a ⋅ k = y 0 − y ,k ∈ Z k \in \mathbb Z k ∈ Z ,代回 a ( x − x 0 ) = b ( y 0 − y ) a(x - x_0) = b(y_0 - y) a ( x − x 0 ) = b ( y 0 − y ) 得证.
素数
设 n ∈ N n \in \mathbb N n ∈ N 且 n > 1 n > 1 n > 1 ,若 n n n 因数只有 1 1 1 和 n n n ,则称 n n n 是素数 ,否则是合数 .
负素数?
在整环 ( R , + , ⋅ ) (R, +, \cdot) ( R , + , ⋅ ) 中,若元素 p ∈ R p \in R p ∈ R 满足
非零元:p ≠ 0 p \ne 0 p = 0 ;
非单位:∄ q \nexists\, q ∄ q ,p q = 1 pq = 1 pq = 1 ,即 p p p 不是可逆元;
素性:∀ a , b ∈ R \forall a, b \in R ∀ a , b ∈ R ,若 p ∣ a b p \mid ab p ∣ ab (即 ∃ k ∈ R \exists\, k \in R ∃ k ∈ R ,a b = p k ab = pk ab = p k ),则 p ∣ a p \mid a p ∣ a 或 p ∣ b p \mid b p ∣ b .
则称 p p p 为素元 .
由于正负不影响整除关系,我们可以在 Z \mathbb Z Z 上定义负素数:p p p 和 − p -p − p 总是同为素数或同为合数 .但这会让各种描述变得拗口,因此若无特殊说明,以下内容的论域均为 N \mathbb N N :素数一般指正素数,因数一般指正因数 .
推论
N \mathbb N N 被分为三类:1 1 1 ,素数,合数.
合数的最小非平凡因数是素数.
素数有无穷多个.
(素性 ,Euclid 整除定理 ) 设 a , b ∈ Z a, b \in \mathbb Z a , b ∈ Z ,p p p 是素数,若 p ∣ a b p \mid ab p ∣ ab ,则 p ∣ a p \mid a p ∣ a 或 p ∣ b p \mid b p ∣ b .
推论 2 的证明
设 N N N 是合数,其最小非平凡因数 p p p 满足 1 < p < N 1 < p < N 1 < p < N 且 p ∣ N p \mid N p ∣ N .
假设 p p p 是合数,任取其非平凡因数 q q q 满足 1 < q < p 1 < q < p 1 < q < p 且 q ∣ p q \mid p q ∣ p .
于是 q ∣ N q \mid N q ∣ N ,这与 p p p 是 N N N 的最小非平凡因数矛盾.
因此 p p p 是素数.
推论 3 的证明
(反证法) 假设仅有的 k k k 个素数为 { p k } i = 1 k \{p_k\}_{i=1}^k { p k } i = 1 k .
令 N = ∏ i = 1 k p i + 1 N = \prod_{i=1}^k p_i + 1 N = ∏ i = 1 k p i + 1 ,显然 1 < p i < N 1 < p_i < N 1 < p i < N ,i = 1 , ⋯ , k i = 1, \cdots, k i = 1 , ⋯ , k ,因此 N N N 是合数.
取 N N N 的最小非平凡因数 p p p ,则 p ∣ N p \mid N p ∣ N 且 p p p 是素数.设 p = p i p = p_i p = p i ,那么 p ∣ ∏ i = 1 k p i p \mid \prod_{i=1}^k p_i p ∣ ∏ i = 1 k p i .
故 p ∣ ( N − ∏ i = 1 k p i ) = 1 p \mid (N - \prod_{i=1}^k p_i) = 1 p ∣ ( N − ∏ i = 1 k p i ) = 1 ,即 p = 1 p = 1 p = 1 ,这与 p p p 是素数矛盾.
因此素数有无穷多个.
推论 4 的证明
若 p ∣ a p \mid a p ∣ a 则证明完毕,于是设 p ∤ a p \nmid a p ∤ a ,考虑是否有 p ⊥ a p \perp a p ⊥ a 从而有 p ∣ b p \mid b p ∣ b .
由于素数 p p p 只有因数 1 1 1 和 p p p ,所以 gcd ( p , a ) \gcd(p, a) g cd( p , a ) 只可能是 1 1 1 或 p p p ,而 p ∤ a p \nmid a p ∤ a ,所以 gcd ( p , a ) = 1 \gcd(p, a) = 1 g cd( p , a ) = 1 .
因为 p ∣ a b p \mid ab p ∣ ab ,且 p ⊥ a p \perp a p ⊥ a ,所以 p ∣ b p \mid b p ∣ b .
素性意味着不可分解,是素数的本质 ,等价于算数基本定理中分解的唯一性.
算术基本定理
对于所有的 n ∈ N n \in \mathbb N n ∈ N 且 n > 1 n > 1 n > 1 ,都存在唯一的素因数分解
n = ∏ i = 1 k p i α i n = \prod_{i=1}^k p_i^{\alpha_i} n = i = 1 ∏ k p i α i 其中 p i p_i p i 是素数且互异,α i ∈ N \alpha_i \in \mathbb N α i ∈ N ,i = 1 , ⋯ , k i = 1, \cdots, k i = 1 , ⋯ , k .
证明
若 n n n 是素数,则分解完成.若 n n n 是合数,取其最小非平凡因数 1 < p < n 1 < p < n 1 < p < n ,则 p p p 是素数.
p p p 的唯一性是显然的,因此下面对 n n n 的分解也是唯一的.
n = p ⋅ n p n = p \cdot \dfrac{n}{p} n = p ⋅ p n 对 n p \dfrac{n}{p} p n 重复上述分解操作.由于 n p < n \dfrac{n}{p} < n p n < n ,分解将终止,便得到 n n n 唯一的素因数分解.
虽然有更严谨的归纳证明,但比较麻烦,个人更喜欢简洁的程序证明.
同余
若 m ∣ ( a − b ) m \mid (a - b) m ∣ ( a − b ) ,则称 a a a 与 b b b 模 m m m 同余 ,记作
a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) 容易证明,这等价于在带余除法 a = q 1 m + r 1 a = q_1m + r_1 a = q 1 m + r 1 和 b = q 2 m + r 2 b = q_2m + r_2 b = q 2 m + r 2 中,r 1 = r 2 r_1 = r_2 r 1 = r 2 .
负模数?
由于正负不影响整除关系,a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) 等价于 a ≡ b ( m o d ( − m ) ) a \equiv b \pmod{(-m)} a ≡ b ( mod ( − m )) .
因此若无特殊说明,模数 m m m 总是正整数 .
推论
同余是等价关系 :
自反性:a ≡ a ( m o d m ) a \equiv a \pmod m a ≡ a ( mod m ) ;
对称性:若 a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) ,则 b ≡ a ( m o d m ) b \equiv a \pmod m b ≡ a ( mod m ) ;
传递性:若 a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) ,b ≡ c ( m o d m ) b \equiv c \pmod m b ≡ c ( mod m ) ,则 a ≡ c ( m o d m ) a \equiv c \pmod m a ≡ c ( mod m ) .
线性运算 :若 a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) ,c ≡ d ( m o d m ) c \equiv d \pmod m c ≡ d ( mod m ) ,则
同余式的和:a + c ≡ b + d ( m o d m ) a + c \equiv b + d \pmod m a + c ≡ b + d ( mod m ) ;
同余式的积:a c ≡ b d ( m o d m ) ac \equiv bd \pmod m a c ≡ b d ( mod m ) .
一般缩放 :若 k ∈ Z k \in \mathbb Z k ∈ Z ,且 k ≠ 0 k \ne 0 k = 0 ,则 k a ≡ k b ( m o d k m ) ka \equiv kb \pmod{km} ka ≡ kb ( mod km ) 等价于 a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) .
模数因数 :若 a ≡ b ( m o d k m ) a \equiv b \pmod {km} a ≡ b ( mod km ) ,则 a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) .
互素消去 :若 k a ≡ k b ( m o d m ) ka \equiv kb \pmod m ka ≡ kb ( mod m ) ,且 k ⊥ m k \perp m k ⊥ m ,则 a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) .
一般消去 :若 k a ≡ k b ( m o d m ) ka \equiv kb \pmod m ka ≡ kb ( mod m ) ,则 a ≡ b ( m o d m gcd ( k , m ) ) a \equiv b \pmod{\dfrac{m}{\gcd(k, m)}} a ≡ b ( mod g cd( k , m ) m ) .
乘法逆元
设 a , x , m ∈ Z a, x, m \in \mathbb Z a , x , m ∈ Z ,m ≠ 0 m \ne 0 m = 0 ,考查同余方程
a x ≡ 1 ( m o d m ) ax \equiv 1 \pmod m a x ≡ 1 ( mod m ) 若 a ⊥ m a \perp m a ⊥ m ,则方程在模 m m m 意义下有唯一解,称该解为 a a a 的乘法逆元 ,记作 a − 1 a^{-1} a − 1 .否则方程无解.
线性同余方程
设 a , b , x , m ∈ Z a, b, x, m \in \mathbb Z a , b , x , m ∈ Z ,m ≠ 0 m \ne 0 m = 0 ,考查同余方程
a x ≡ b ( m o d m ) ax \equiv b \pmod m a x ≡ b ( mod m ) 若 gcd ( a , m ) ∣ b \gcd(a, m) \mid b g cd( a , m ) ∣ b ,则方程在模 m m m 意义下有 gcd ( a , m ) \gcd(a, m) g cd( a , m ) 个不同的解:
x ≡ x 0 + k ⋅ m gcd ( a , m ) ( m o d m ) x \equiv x_0 + k \cdot \dfrac{m}{\gcd(a, m)} \pmod m x ≡ x 0 + k ⋅ g cd( a , m ) m ( mod m ) 否则方程无解.
循环群的生成元
设 G G G 是循环群,∣ G ∣ = m |G| = m ∣ G ∣ = m ,G G G 的生成元个数
# { g a ∈ G : ⟨ g a ⟩ = G } = # { g a ∈ G : ∀ 0 ≤ b < m , ∃ x ∈ Z , ( g a ) x = g b } = # { 0 ≤ a < m : ∀ 0 ≤ b < m , ∃ x ∈ Z , a x ≡ b ( m o d m ) } = # { 0 ≤ a < m : ∀ 0 ≤ b < m , gcd ( a , m ) ∣ b } = # { 0 ≤ a < m : gcd ( a , m ) ∣ gcd ( 0 , 1 , ⋯ , m − 1 ) } = # { 0 ≤ a < m : gcd ( a , m ) ∣ 1 } = # { 0 ≤ a < m : gcd ( a , m ) = 1 } = φ ( m ) \begin{aligned}
\#\{g^a \in G : \langle g^a \rangle = G\}
&= \#\{g^a \in G : \forall\, 0 \le b < m, \exists\, x \in \mathbb Z, (g^a)^x = g^b\} \\
&= \#\{0 \le a < m : \forall\, 0 \le b < m, \exists\, x \in \mathbb Z, ax \equiv b \pmod m\} \\
&= \#\{0 \le a < m : \forall\, 0 \le b < m, \gcd(a, m) \mid b\} \\
&= \#\{0 \le a < m : \gcd(a, m) \mid \gcd(0, 1, \cdots, m - 1)\} \\
&= \#\{0 \le a < m : \gcd(a, m) \mid 1\} \\
&= \#\{0 \le a < m : \gcd(a, m) = 1\} \\
&= \varphi(m)
\end{aligned} # { g a ∈ G : ⟨ g a ⟩ = G } = # { g a ∈ G : ∀ 0 ≤ b < m , ∃ x ∈ Z , ( g a ) x = g b } = # { 0 ≤ a < m : ∀ 0 ≤ b < m , ∃ x ∈ Z , a x ≡ b ( mod m )} = # { 0 ≤ a < m : ∀ 0 ≤ b < m , g cd( a , m ) ∣ b } = # { 0 ≤ a < m : g cd( a , m ) ∣ g cd( 0 , 1 , ⋯ , m − 1 )} = # { 0 ≤ a < m : g cd( a , m ) ∣ 1 } = # { 0 ≤ a < m : g cd( a , m ) = 1 } = φ ( m ) 其中 φ ( m ) \varphi(m) φ ( m ) 是 Euler 函数,后面我们将正式定义它.
可见 g k g^k g k 是循环群 G G G 的生成元,当且仅当 k ⊥ ∣ G ∣ k \perp |G| k ⊥ ∣ G ∣ .
同余类
设 m ∈ N m \in \mathbb N m ∈ N ,r ∈ Z r \in \mathbb Z r ∈ Z ,定义 r r r 的模 m m m 同余类
[ r ] m = { x : x ≡ r ( m o d m ) } [r]_m = \{x : x \equiv r \pmod m\} [ r ] m = { x : x ≡ r ( mod m )} 推论
根据同余的定义,容易得到
[ r ] m = r + m Z [r]_m = r + m \mathbb Z [ r ] m = r + m Z 模 m m m 同余关系是等价关系,因此模 m m m 同余类就是模 m m m 同余关系的等价类 :
[ a ] m = [ b ] m [a]_m = [b]_m [ a ] m = [ b ] m 当且仅当 a ≡ b ( m o d m ) a \equiv b \pmod m a ≡ b ( mod m ) .
要么 [ a ] m = [ b ] m [a]_m = [b]_m [ a ] m = [ b ] m ,要么 [ a ] m ∩ [ b ] m = ∅ [a]_m \cap [b]_m = \empty [ a ] m ∩ [ b ] m = ∅ .
Z / m Z \mathbb Z / m \mathbb Z Z / m Z 容易证明,Z \mathbb Z Z 关于模 m m m 同余关系的商集 为
Z / m Z = { [ r ] m : 0 ≤ r < m } \mathbb Z / m \mathbb Z = \{[r]_m : 0 \le r < m\} Z / m Z = {[ r ] m : 0 ≤ r < m } 我们注意到,任取 x ∈ [ r ] m x \in [r]_m x ∈ [ r ] m 和 y ∈ [ s ] m y \in [s]_m y ∈ [ s ] m ,都有
x + y ∈ [ r + s ] m x y ∈ [ r s ] m \begin{aligned}
x + y &\in [r + s]_m \\
xy &\in [rs]_m
\end{aligned} x + y x y ∈ [ r + s ] m ∈ [ rs ] m 这提示我们可以在 Z / m Z \mathbb Z / m \mathbb Z Z / m Z 上定义
[ a ] m + [ b ] m = [ a + b ] m [ a ] m ⋅ [ b ] m = [ a b ] m \begin{aligned}
[a]_m + [b]_m &= [a + b]_m \\
[a]_m \cdot [b]_m &= [ab]_m
\end{aligned} [ a ] m + [ b ] m [ a ] m ⋅ [ b ] m = [ a + b ] m = [ ab ] m 容易证明它们是良定义的 (不依赖于具体的代表元),此时 ( Z / m Z , + , ⋅ ) (\mathbb Z / m \mathbb Z, +, \cdot) ( Z / m Z , + , ⋅ ) 构成了代数,简记成 Z / m Z \mathbb Z / m \mathbb Z Z / m Z .
Z / m Z \mathbb Z / m \mathbb Z Z / m Z # Z / m Z \mathbb Z / m \mathbb Z Z / m Z 的结构
Z / m Z \mathbb Z / m \mathbb Z Z / m Z 是零环,当且仅当 m = 1 m = 1 m = 1 .
当 m > 1 m > 1 m > 1 时,Z / m Z \mathbb Z / m \mathbb Z Z / m Z 是交换幺环,幺元是 [ 1 ] m [1]_m [ 1 ] m .
[ r ] m [r]_m [ r ] m 在 Z / m Z \mathbb Z / m \mathbb Z Z / m Z 可逆,当且仅当 r ⊥ m r \perp m r ⊥ m ,此时 ( [ r ] m ) − 1 = [ r − 1 ] m ([r]_m)^{-1} = [r^{-1}]_m ([ r ] m ) − 1 = [ r − 1 ] m .
若 m m m 是合数,设其非平凡因数是 d d d ,则所有的 [ d ] m [d]_m [ d ] m 都是零因子,其他非零元素 [ r ] m [r]_m [ r ] m 均可逆.
若 m m m 是素数,则不存在零因子,且非零元素均可逆,此时 Z / m Z \mathbb Z / m \mathbb Z Z / m Z 是域.
Z / m Z \mathbb Z / m \mathbb Z Z / m Z 的分解
如同算术基本定理,将任何大于 1 1 1 的正整数 N N N 分解成素数之幂积
N = p 1 α 1 p 2 α 2 ⋯ p k α k N = p_1^{\alpha_1} p_2^{\alpha_2} \cdots p_k^{\alpha_k} N = p 1 α 1 p 2 α 2 ⋯ p k α k 形成
N ↦ ( α 1 , α 2 , ⋯ , α k ) N \mapsto (\alpha_1, \alpha_2, \cdots, \alpha_k) N ↦ ( α 1 , α 2 , ⋯ , α k ) 类似坐标分解的双射.我们也可以将大模数环分解成模数两两互素的小模数环之直积
Z / ( m 1 m 2 ⋯ m k ) Z ≅ Z / m 1 Z × Z / m 2 Z × ⋯ × Z / m k Z \mathbb Z / (m_1 m_2 \cdots m_k) \mathbb Z \cong \mathbb Z / m_1 \mathbb Z \times \mathbb Z / m_2 \mathbb Z \times \cdots \times \mathbb Z / m_k \mathbb Z Z / ( m 1 m 2 ⋯ m k ) Z ≅ Z / m 1 Z × Z / m 2 Z × ⋯ × Z / m k Z 形成
[ r ] m 1 m 2 ⋯ m k ↦ ( [ r ] m 1 , [ r ] m 2 , ⋯ , [ r ] m k ) [r]_{m_1 m_2 \cdots m_k} \mapsto ([r]_{m_1}, [r]_{m_2}, \cdots, [r]_{m_k}) [ r ] m 1 m 2 ⋯ m k ↦ ([ r ] m 1 , [ r ] m 2 , ⋯ , [ r ] m k ) 类似坐标分解的双射以及运算的保持.这意味着一个模数系统可被分解成多个独立的素数幂模数系统 .
这样构造的映射是自然的,且不难证明是同态映射,但能构成双射吗?因为同余的运算性质,
[ r ] m 1 m 2 ⋯ m k ⊂ [ r ] m 1 , [ r ] m 2 , ⋯ , [ r ] m k [r]_{m_1 m_2 \cdots m_k} \sub [r]_{m_1}, [r]_{m_2}, \cdots, [r]_{m_k} [ r ] m 1 m 2 ⋯ m k ⊂ [ r ] m 1 , [ r ] m 2 , ⋯ , [ r ] m k 每个小环好似一个坐标分量.对于所有的坐标,它们能否唯一确定一个大环?
中国剩余定理 (Chinese Remainder Theorem, CRT)
设 m 1 , m 2 , ⋯ , m k ∈ N m_1, m_2, \cdots, m_k \in \mathbb N m 1 , m 2 , ⋯ , m k ∈ N 两两互素,那么对于任意的 a 1 , a 2 , ⋯ , a k ∈ Z a_1, a_2, \cdots, a_k \in \mathbb Z a 1 , a 2 , ⋯ , a k ∈ Z ,同余方程组
{ x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) ⋮ x ≡ a k ( m o d m k ) \begin{cases}
x \equiv a_1 \pmod{m_1} \\
x \equiv a_2 \pmod{m_2} \\
\hspace{1.1em} \vdots \\
x \equiv a_k \pmod{m_k}
\end{cases} ⎩ ⎨ ⎧ x ≡ a 1 ( mod m 1 ) x ≡ a 2 ( mod m 2 ) ⋮ x ≡ a k ( mod m k ) 在模 M = m 1 m 2 ⋯ m k M = m_1 m_2 \cdots m_k M = m 1 m 2 ⋯ m k 意义下有唯一解 x 0 x_0 x 0 ,即该同余方程组完全等价于同余方程
x ≡ x 0 ( m o d M ) x \equiv x_0 \pmod{M} x ≡ x 0 ( mod M )
也就是说,所有坐标 ( [ a 1 ] m 1 , [ a 2 ] m 2 , ⋯ , [ a k ] m k ) ([a_1]_{m_1}, [a_2]_{m_2}, \cdots, [a_k]_{m_k}) ([ a 1 ] m 1 , [ a 2 ] m 2 , ⋯ , [ a k ] m k ) 都能被还原出唯一的 [ x 0 ] M [x_0]_M [ x 0 ] M .
证明
假如我们能找到正交基底 v 1 , v 2 , ⋯ , v k v_1, v_2, \cdots, v_k v 1 , v 2 , ⋯ , v k ,满足
{ v 1 ≡ 1 ( m o d m 1 ) v 1 ≡ 0 ( m o d m 2 ) ⋮ v 1 ≡ 0 ( m o d m k ) { v 2 ≡ 0 ( m o d m 1 ) v 2 ≡ 1 ( m o d m 2 ) ⋮ v 2 ≡ 0 ( m o d m k ) ⋯ { v k ≡ 0 ( m o d m 1 ) v k ≡ 0 ( m o d m 2 ) ⋮ v k ≡ 1 ( m o d m k ) \begin{cases}
v_1 \equiv 1 \pmod{m_1} \\
v_1 \equiv 0 \pmod{m_2} \\
\hspace{1.4em} \vdots \\
v_1 \equiv 0 \pmod{m_k}
\end{cases}
\:
\begin{cases}
v_2 \equiv 0 \pmod{m_1} \\
v_2 \equiv 1 \pmod{m_2} \\
\hspace{1.4em} \vdots \\
v_2 \equiv 0 \pmod{m_k}
\end{cases}
\:
\cdots
\:
\begin{cases}
v_k \equiv 0 \pmod{m_1} \\
v_k \equiv 0 \pmod{m_2} \\
\hspace{1.4em} \vdots \\
v_k \equiv 1 \pmod{m_k}
\end{cases} ⎩ ⎨ ⎧ v 1 ≡ 1 ( mod m 1 ) v 1 ≡ 0 ( mod m 2 ) ⋮ v 1 ≡ 0 ( mod m k ) ⎩ ⎨ ⎧ v 2 ≡ 0 ( mod m 1 ) v 2 ≡ 1 ( mod m 2 ) ⋮ v 2 ≡ 0 ( mod m k ) ⋯ ⎩ ⎨ ⎧ v k ≡ 0 ( mod m 1 ) v k ≡ 0 ( mod m 2 ) ⋮ v k ≡ 1 ( mod m k ) 便有
{ a 1 v 1 ≡ a 1 ( m o d m 1 ) a 1 v 1 ≡ 0 ( m o d m 2 ) ⋮ a 1 v 1 ≡ 0 ( m o d m k ) { a 2 v 2 ≡ 0 ( m o d m 1 ) a 2 v 2 ≡ a 2 ( m o d m 2 ) ⋮ a 2 v 2 ≡ 0 ( m o d m k ) ⋯ { a k v k ≡ 0 ( m o d m 1 ) a k v k ≡ 0 ( m o d m 2 ) ⋮ a k v k ≡ a k ( m o d m k ) \begin{cases}
a_1 v_1 \equiv a_1 \pmod{m_1} \\
a_1 v_1 \equiv 0 \pmod{m_2} \\
\hspace{2.35em} \vdots \\
a_1 v_1 \equiv 0 \pmod{m_k}
\end{cases}
\:
\begin{cases}
a_2 v_2 \equiv 0 \pmod{m_1} \\
a_2 v_2 \equiv a_2 \pmod{m_2} \\
\hspace{2.35em} \vdots \\
a_2 v_2 \equiv 0 \pmod{m_k}
\end{cases}
\:
\cdots
\:
\begin{cases}
a_k v_k \equiv 0 \pmod{m_1} \\
a_k v_k \equiv 0 \pmod{m_2} \\
\hspace{2.35em} \vdots \\
a_k v_k \equiv a_k \pmod{m_k}
\end{cases} ⎩ ⎨ ⎧ a 1 v 1 ≡ a 1 ( mod m 1 ) a 1 v 1 ≡ 0 ( mod m 2 ) ⋮ a 1 v 1 ≡ 0 ( mod m k ) ⎩ ⎨ ⎧ a 2 v 2 ≡ 0 ( mod m 1 ) a 2 v 2 ≡ a 2 ( mod m 2 ) ⋮ a 2 v 2 ≡ 0 ( mod m k ) ⋯ ⎩ ⎨ ⎧ a k v k ≡ 0 ( mod m 1 ) a k v k ≡ 0 ( mod m 2 ) ⋮ a k v k ≡ a k ( mod m k ) 此时
{ a 1 v 1 + a 2 v 2 + ⋯ + a k v k ≡ a 1 ( m o d m 1 ) a 1 v 1 + a 2 v 2 + ⋯ + a k v k ≡ a 2 ( m o d m 2 ) ⋮ a 1 v 1 + a 2 v 2 + ⋯ + a k v k ≡ a k ( m o d m k ) \begin{cases}
a_1 v_1 + a_2 v_2 + \cdots + a_k v_k \equiv a_1 \pmod{m_1} \\
a_1 v_1 + a_2 v_2 + \cdots + a_k v_k \equiv a_2 \pmod{m_2} \\
\hspace{10.9em} \vdots \\
a_1 v_1 + a_2 v_2 + \cdots + a_k v_k \equiv a_k \pmod{m_k}
\end{cases} ⎩ ⎨ ⎧ a 1 v 1 + a 2 v 2 + ⋯ + a k v k ≡ a 1 ( mod m 1 ) a 1 v 1 + a 2 v 2 + ⋯ + a k v k ≡ a 2 ( mod m 2 ) ⋮ a 1 v 1 + a 2 v 2 + ⋯ + a k v k ≡ a k ( mod m k ) 得方程组的特解
x 0 = a 1 v 1 + a 2 v 2 + ⋯ + a k v k x_0 = a_1 v_1 + a_2 v_2 + \cdots + a_k v_k x 0 = a 1 v 1 + a 2 v 2 + ⋯ + a k v k 因为通解需要同时满足 k k k 条同余方程,每条方程解的间隔不一,所以通解的间隔应该为 lcm ( m 1 , m 2 , ⋯ , m k ) \text{lcm}(m_1, m_2, \cdots, m_k) lcm ( m 1 , m 2 , ⋯ , m k ) ,即 M = m 1 m 2 ⋯ m k M = m_1 m_2 \cdots m_k M = m 1 m 2 ⋯ m k ,故方程组的解 x 0 x_0 x 0 在模 M M M 意义下是唯一的.
唯一性的证明也可以通过设另一解来证明二者在模 M M M 意义下相等.
现在的问题是如何找到这样的基底?
{ v i ≡ 0 ( m o d m 1 ) ⋮ v i ≡ 1 ( m o d m i ) ⋮ v i ≡ 0 ( m o d m k ) \begin{cases}
v_i \equiv 0 \pmod{m_1} \\
\hspace{1.4em} \vdots \\
v_i \equiv 1 \pmod{m_i} \\
\hspace{1.4em} \vdots \\
v_i \equiv 0 \pmod{m_k}
\end{cases} ⎩ ⎨ ⎧ v i ≡ 0 ( mod m 1 ) ⋮ v i ≡ 1 ( mod m i ) ⋮ v i ≡ 0 ( mod m k ) 首先肯定有 M m i | v i \left.\dfrac{M}{m_i} \,\middle|\, v_i\right. m i M v i ,然后我们发现 M m i ⊥ m i \dfrac{M}{m_i} \perp m_i m i M ⊥ m i ,因此可取
v i = ( M m i ) m i − 1 ⋅ M m i v_i = \Big(\dfrac{M}{m_i}\Big)_{m_i}^{-1} \cdot \dfrac{M}{m_i} v i = ( m i M ) m i − 1 ⋅ m i M 如此便得正交基底,此时
x 0 = a 1 ⋅ ( M m 1 ) m 1 − 1 ⋅ M m 1 + a 2 ⋅ ( M m 2 ) m 2 − 1 ⋅ M m 2 + ⋯ + a k ⋅ ( M m k ) m k − 1 ⋅ M m k x_0 =
a_1 \cdot \Big(\dfrac{M}{m_1}\Big)_{m_1}^{-1} \cdot \dfrac{M}{m_1} +
a_2 \cdot \Big(\dfrac{M}{m_2}\Big)_{m_2}^{-1} \cdot \dfrac{M}{m_2} +
\cdots +
a_k \cdot \Big(\dfrac{M}{m_k}\Big)_{m_k}^{-1} \cdot \dfrac{M}{m_k} x 0 = a 1 ⋅ ( m 1 M ) m 1 − 1 ⋅ m 1 M + a 2 ⋅ ( m 2 M ) m 2 − 1 ⋅ m 2 M + ⋯ + a k ⋅ ( m k M ) m k − 1 ⋅ m k M 便得到模 M M M 意义下的唯一解.
( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × # ( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) ×
( Z / m Z , ⋅ ) (\mathbb Z / m \mathbb Z, \cdot) ( Z / m Z , ⋅ ) 仅仅是交换幺半群,因为元素不一定都可逆,比如 [ 0 ] m [0]_m [ 0 ] m ,[ a ] m [a]_m [ a ] m (a a a 与 m m m 不互素).
模 m m m 乘法群 ( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 是交换群,所有元素均可逆.
( Z / p Z ) × (\mathbb Z / p \mathbb Z)^\times ( Z / p Z ) × 是循环群,即 ( Z / p Z ) × ≅ C p − 1 (\mathbb Z / p \mathbb Z)^\times \cong C_{p-1} ( Z / p Z ) × ≅ C p − 1 ,p p p 是素数.
( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 的形式
根据模 m m m 意义下可逆的条件,我们有
( Z / m Z ) × = ( { [ r ] m : r ⊥ m } , ⋅ ) (\mathbb Z / m \mathbb Z)^\times = (\{[r]_m : r \perp m\}, \cdot) ( Z / m Z ) × = ({[ r ] m : r ⊥ m } , ⋅ ) 由于 ( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 是群,运算的封闭性可以导出 Euclid 互素定理:a ⊥ m a \perp m a ⊥ m 且 b ⊥ m b \perp m b ⊥ m ,当且仅当 a b ⊥ m ab \perp m ab ⊥ m .
( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 的分解
根据 Euclid 互素定理,r ⊥ M r \perp M r ⊥ M 当且仅当 r ⊥ m i r \perp m_i r ⊥ m i ,i ∈ { 1 , ⋯ , k } i \in \{1, \cdots, k\} i ∈ { 1 , ⋯ , k } .
也就是说,[ r ] M ∈ ( Z / M Z ) × [r]_M \in (\mathbb Z / M \mathbb Z)^\times [ r ] M ∈ ( Z / M Z ) × 当且仅当 [ r ] m i ∈ ( Z / m i Z ) × [r]_{m_i} \in (\mathbb Z / m_i \mathbb Z)^\times [ r ] m i ∈ ( Z / m i Z ) × ,i ∈ { 1 , ⋯ , k } i \in \{1, \cdots, k\} i ∈ { 1 , ⋯ , k } .于是
Z / M Z ≅ Z / m 1 Z × Z / m 2 Z × ⋯ × Z / m k Z \mathbb Z / M \mathbb Z \cong \mathbb Z / m_1 \mathbb Z \times \mathbb Z / m_2 \mathbb Z \times \cdots \times \mathbb Z / m_k \mathbb Z Z / M Z ≅ Z / m 1 Z × Z / m 2 Z × ⋯ × Z / m k Z 将保持至
( Z / M Z ) × ≅ ( Z / m 1 Z ) × × ( Z / m 2 Z ) × × ⋯ × ( Z / m k Z ) × (\mathbb Z / M \mathbb Z)^{\times} \cong (\mathbb Z / m_1 \mathbb Z)^{\times} \times (\mathbb Z / m_2 \mathbb Z)^{\times} \times \cdots \times (\mathbb Z / m_k \mathbb Z)^{\times} ( Z / M Z ) × ≅ ( Z / m 1 Z ) × × ( Z / m 2 Z ) × × ⋯ × ( Z / m k Z ) ×
4\9 1 2 4 5 7 8 1 1 29 13 5 25 17 3 19 11 31 23 7 35
( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 的阶数
对于 n ∈ N n \in \mathbb N n ∈ N ,定义 Euler 函数
φ ( n ) = ∣ ( Z / n Z ) × ∣ = # { 0 ≤ k < n : gcd ( k , n ) = 1 } \begin{aligned}
\varphi(n) &= \left|(\mathbb Z / n \mathbb Z)^\times\right| \\
&= \#\{0 \le k < n : \gcd(k, n) = 1\}
\end{aligned} φ ( n ) = ( Z / n Z ) × = # { 0 ≤ k < n : g cd( k , n ) = 1 } 推论
φ ( 1 ) = 1 \varphi(1) = 1 φ ( 1 ) = 1 ,此时 ( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 是平凡群,仅含 [ 0 ] m [0]_m [ 0 ] m .
当 p p p 是素数时,φ ( p ) = p − 1 \varphi(p) = p - 1 φ ( p ) = p − 1 .
当 p p p 是素数时,φ ( p k ) = p k − p k − 1 = p k ( 1 − 1 p ) \varphi(p^k) = p^k - p^{k-1} = p^k \Big(1 - \dfrac{1}{p}\Big) φ ( p k ) = p k − p k − 1 = p k ( 1 − p 1 ) .
当 m ⊥ n m \perp n m ⊥ n 时,φ ( m n ) = φ ( m ) φ ( n ) \varphi(mn) = \varphi(m) \varphi(n) φ ( mn ) = φ ( m ) φ ( n ) .
φ ( n ) = n ∏ p ∣ n ( 1 − 1 p ) \varphi(n) = n \displaystyle\prod_{p \mid n} \Big(1 - \dfrac{1}{p}\Big) φ ( n ) = n p ∣ n ∏ ( 1 − p 1 ) ,n > 1 n > 1 n > 1 ,p p p 是素数.
∑ d ∣ n φ ( d ) = n \displaystyle\sum_{d \mid n} \varphi(d) = n d ∣ n ∑ φ ( d ) = n ,n ∈ N n \in \mathbb N n ∈ N .
推论 2 的证明
注意到 gcd ( 0 , p ) = p ≠ 1 \gcd(0, p) = p \ne 1 g cd( 0 , p ) = p = 1 ,gcd ( k , p ) = 1 \gcd(k, p) = 1 g cd( k , p ) = 1 ,k ∈ { 1 , ⋯ , p − 1 } k \in \{1, \cdots, p - 1\} k ∈ { 1 , ⋯ , p − 1 } .
推论 3 的证明
由 Euclid 互素定理,gcd ( a , p k ) = 1 \gcd(a, p^k) = 1 g cd( a , p k ) = 1 当且仅当 gcd ( a , p ) = 1 \gcd(a, p) = 1 g cd( a , p ) = 1 ,于是
φ ( p k ) = # { 0 ≤ a < p k : gcd ( a , p k ) = 1 } = # { 0 ≤ a < p k : gcd ( a , p ) = 1 } = p k − # { 0 ≤ a < p k : gcd ( a , p ) > 1 } = p k − # { 0 ≤ a < p k : gcd ( a , p ) = p } = p k − # { 0 ≤ a < p k : p ∣ a } = p k − # { 0 p , 1 p , ⋯ , p k − 2 p } = p k − p k − 1 \begin{aligned}
\varphi(p^k) &= \#\{0 \le a < p^k : \gcd(a, p^k) = 1\} \\
&= \#\{0 \le a < p^k : \gcd(a, p) = 1\} \\
&= p^k - \#\{0 \le a < p^k : \gcd(a, p) > 1\} \\
&= p^k - \#\{0 \le a < p^k : \gcd(a, p) = p\} \\
&= p^k - \#\{0 \le a < p^k : p \mid a\} \\
&= p^k - \#\{0p, 1p, \cdots, p^{k-2}p\} \\
&= p^k - p^{k-1}
\end{aligned} φ ( p k ) = # { 0 ≤ a < p k : g cd( a , p k ) = 1 } = # { 0 ≤ a < p k : g cd( a , p ) = 1 } = p k − # { 0 ≤ a < p k : g cd( a , p ) > 1 } = p k − # { 0 ≤ a < p k : g cd( a , p ) = p } = p k − # { 0 ≤ a < p k : p ∣ a } = p k − # { 0 p , 1 p , ⋯ , p k − 2 p } = p k − p k − 1 推论 4 的证明
m ⊥ n m \perp n m ⊥ n ,因此对 ( Z / m n Z ) × (\mathbb Z / mn \mathbb Z)^{\times} ( Z / mn Z ) × 进行分解
( Z / m n Z ) × ≅ ( Z / m Z ) × × ( Z / n Z ) × ∣ ( Z / m n Z ) × ∣ = ∣ ( Z / m Z ) × ∣ ⋅ ∣ ( Z / n Z ) × ∣ φ ( m n ) = φ ( m ) φ ( n ) \begin{aligned}
(\mathbb Z / mn \mathbb Z)^{\times} &\cong (\mathbb Z / m \mathbb Z)^{\times} \times (\mathbb Z / n \mathbb Z)^{\times} \\
\left|(\mathbb Z / mn \mathbb Z)^{\times}\right| &= \left|(\mathbb Z / m \mathbb Z)^{\times}\right| \cdot \left|(\mathbb Z / n \mathbb Z)^{\times}\right| \\
\varphi(mn) &= \varphi(m) \varphi(n)
\end{aligned} ( Z / mn Z ) × ( Z / mn Z ) × φ ( mn ) ≅ ( Z / m Z ) × × ( Z / n Z ) × = ( Z / m Z ) × ⋅ ( Z / n Z ) × = φ ( m ) φ ( n ) 推论 5 的证明
n > 1 n > 1 n > 1 ,由算术基本定理
φ ( n ) = φ ( ∏ i = 1 k p i α i ) = ∏ i = 1 k φ ( p i α i ) = ∏ i = 1 k p i α i ( 1 − 1 p i ) = n ∏ p ∣ n ( 1 − 1 p ) \varphi(n) = \varphi\Big(\prod_{i=1}^{k} p_i^{\alpha_i}\Big)
= \prod_{i=1}^k \varphi(p_i^{\alpha_i})
= \prod_{i=1}^k p_i^{\alpha_i} \Big(1 - \dfrac{1}{p_i}\Big)
= n \prod_{p \mid n} \Big(1 - \dfrac{1}{p}\Big) φ ( n ) = φ ( i = 1 ∏ k p i α i ) = i = 1 ∏ k φ ( p i α i ) = i = 1 ∏ k p i α i ( 1 − p i 1 ) = n p ∣ n ∏ ( 1 − p 1 ) p p p 是素数.
推论 6 的证明
先回顾循环群 G G G 的性质:
对于所有的 d ∣ ∣ G ∣ d \mid |G| d ∣ ∣ G ∣ ,总存在唯一的 d d d 阶子群;
循环群的子群仍是循环群;
恰有 ϕ ( ∣ G ∣ ) \phi(|G|) ϕ ( ∣ G ∣ ) 个生成元.
今按阶数给 Z / n Z \mathbb Z / n \mathbb Z Z / n Z 里 n n n 个数分类:关注阶数为 d d d 的数,它们都对应了各自阶为 d d d 的生成子群.
但 Z / n Z \mathbb Z / n \mathbb Z Z / n Z 加法群是循环群,其阶为 d d d 的子群 H H H 有且仅有一个.
因此所有阶数为 d d d 的数都成为了循环群 H H H 的生成元,共有 φ ( d ) \varphi(d) φ ( d ) 个.
另外,根据有限群的 Lagrange 定理,d ∣ n d \mid n d ∣ n .
n = ∣ Z / n Z ∣ = ∑ d ∣ n # { 0 ≤ k < n : ord n ( k ) = d } = ∑ d ∣ n # { h : ⟨ h ⟩ = H , H ≤ Z / n Z , ∣ H ∣ = d } = ∑ d ∣ n φ ( d ) \begin{aligned}
n &= |\mathbb Z / n \mathbb Z| = \sum_{d \mid n} \#\{0 \le k < n : \text{ord}_n(k) = d\} \\
&= \sum_{d \mid n} \#\{ h : \langle h \rangle = H, H \le \mathbb Z / n \mathbb Z, |H| = d \} = \sum_{d \mid n} \varphi(d)
\end{aligned} n = ∣ Z / n Z ∣ = d ∣ n ∑ # { 0 ≤ k < n : ord n ( k ) = d } = d ∣ n ∑ # { h : ⟨ h ⟩ = H , H ≤ Z / n Z , ∣ H ∣ = d } = d ∣ n ∑ φ ( d ) ( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 的幂结构
任取 [ a ] m ∈ ( Z / m Z ) × [a]_m \in (\mathbb Z / m \mathbb Z)^{\times} [ a ] m ∈ ( Z / m Z ) × ,其中 m > 1 m > 1 m > 1 ,0 ≤ a < m 0 \le a < m 0 ≤ a < m ,gcd ( a , m ) = 1 \gcd(a, m) = 1 g cd( a , m ) = 1 .
研究 [ a ] m [a]_m [ a ] m 的阶数 ord m ( a ) \text{ord}_m(a) ord m ( a ) :考虑到非平凡群 ( Z / m Z ) × (\mathbb Z / m \mathbb Z)^{\times} ( Z / m Z ) × 的幺元是 [ 1 ] m [1]_m [ 1 ] m ,便有
a ord m ( a ) ≡ 1 ( m o d m ) a^{\text{ord}_m(a)} \equiv 1 \pmod m a ord m ( a ) ≡ 1 ( mod m ) 于是我们可以对任何幂 [ a ] m n [a]_m^n [ a ] m n 进行带余除法 (0 ≤ r < ord m ( a ) 0 \le r < \text{ord}_m(a) 0 ≤ r < ord m ( a ) )
a n = a q ⋅ ord m ( a ) + r = ( a ord m ( a ) ) q ⋅ a r ≡ a r ( m o d m ) a^n = a^{q \cdot \text{ord}_m(a) + r} = {\big(a^{\text{ord}_m(a)}\big)}^{q} \cdot a^r \equiv a^r \pmod m a n = a q ⋅ ord m ( a ) + r = ( a ord m ( a ) ) q ⋅ a r ≡ a r ( mod m ) 结论
a n ≡ 1 ( m o d m ) a^n \equiv 1 \pmod m a n ≡ 1 ( mod m ) ,当且仅当 ord m ( a ) ∣ n \text{ord}_m(a) \mid n ord m ( a ) ∣ n ,其中 m > 1 m > 1 m > 1 ,0 ≤ a < m 0 \le a < m 0 ≤ a < m ,gcd ( a , m ) = 1 \gcd(a, m) = 1 g cd( a , m ) = 1 .
(Euler 定理 ) a φ ( m ) ≡ 1 ( m o d m ) a^{\varphi(m)} \equiv 1 \pmod m a φ ( m ) ≡ 1 ( mod m ) ,其中 m > 1 m > 1 m > 1 ,a ∈ Z a \in \mathbb Z a ∈ Z ,gcd ( a , m ) = 1 \gcd(a, m) = 1 g cd( a , m ) = 1 .
(Fermat 小定理 ) a p − 1 ≡ 1 ( m o d p ) a^{p-1} \equiv 1 \pmod p a p − 1 ≡ 1 ( mod p ) ,其中 p p p 是素数,p > 1 p > 1 p > 1 ,a ∈ Z a \in \mathbb Z a ∈ Z ,p ∤ a p \nmid a p ∤ a .
感受 Euler 定理:在 ( Z / 10 Z ) × = { [ 1 ] m , [ 3 ] m , [ 7 ] m , [ 9 ] m } (\mathbb Z / 10 \mathbb Z)^{\times} = \{[1]_m, [3]_m, [7]_m, [9]_m\} ( Z /10 Z ) × = {[ 1 ] m , [ 3 ] m , [ 7 ] m , [ 9 ] m } 中,
1 4 ≡ 3 4 ≡ 7 4 ≡ 9 4 ≡ 1 ( m o d 10 ) 1^4 \equiv 3^4 \equiv 7^4 \equiv 9^4 \equiv 1 \pmod{10} 1 4 ≡ 3 4 ≡ 7 4 ≡ 9 4 ≡ 1 ( mod 10 )
Euler 定理的证明
设 0 ≤ a < m 0 \le a < m 0 ≤ a < m ,( Z / m Z ) × (\mathbb Z / m \mathbb Z)^{\times} ( Z / m Z ) × 的阶数是 φ ( m ) \varphi(m) φ ( m ) ,生成子群 ⟨ [ a ] m ⟩ \langle [a]_m \rangle ⟨[ a ] m ⟩ 阶数等于 ord m ( a ) \text{ord}_m(a) ord m ( a ) .
根据有限群的 Lagrange 定理 ,我们有 ord m ( a ) ∣ φ ( m ) \text{ord}_m(a) \mid \varphi(m) ord m ( a ) ∣ φ ( m ) ,于是得到
a φ ( m ) ≡ 1 ( m o d m ) a^{\varphi(m)} \equiv 1 \pmod m a φ ( m ) ≡ 1 ( mod m )
可不必 a ∈ ( Z / m Z ) × a \in (\mathbb Z / m \mathbb Z)^{\times} a ∈ ( Z / m Z ) × (0 ≤ a < m 0 \le a < m 0 ≤ a < m ):不妨设 b ∈ Z b \in \mathbb Z b ∈ Z 满足 b ≡ a ( m o d m ) b \equiv a \pmod m b ≡ a ( mod m ) ,那么
b φ ( m ) ≡ a φ ( m ) ≡ 1 ( m o d m ) b^{\varphi(m)} \equiv a^{\varphi(m)} \equiv 1 \pmod m b φ ( m ) ≡ a φ ( m ) ≡ 1 ( mod m )
原根
设 m > 1 m > 1 m > 1 ,0 ≤ g < m 0 \le g < m 0 ≤ g < m ,gcd ( g , m ) = 1 \gcd(g, m) = 1 g cd( g , m ) = 1 ,若 ord m ( g ) = φ ( m ) \text{ord}_m(g) = \varphi(m) ord m ( g ) = φ ( m ) ,则称 g g g 是模 m m m 的原根 .
性质
模 m m m 的原根存在,当且仅当 ( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 是循环群,此时 [ g ] m [g]_m [ g ] m 是循环群 ( Z / m Z ) × (\mathbb Z / m \mathbb Z)^\times ( Z / m Z ) × 的生成元.
( Z / p Z ) × (\mathbb Z / p \mathbb Z)^\times ( Z / p Z ) × # ( Z / p Z ) × (\mathbb Z / p \mathbb Z)^\times ( Z / p Z ) × 里的逆元配对
设 p p p 是素数.不难证明
f : ( Z / p Z ) × → ( Z / p Z ) × a ↦ a − 1 \begin{aligned}
f: (\mathbb Z / p \mathbb Z)^\times &\rightarrow (\mathbb Z / p \mathbb Z)^\times \\
a &\mapsto a^{-1}
\end{aligned} f : ( Z / p Z ) × a → ( Z / p Z ) × ↦ a − 1 是双射.此时分两种情况:
a − 1 ≢ a ( m o d p ) a^{-1} \not\equiv a \pmod p a − 1 ≡ a ( mod p ) ;
a − 1 ≡ a ( m o d p ) a^{-1} \equiv a \pmod p a − 1 ≡ a ( mod p ) ,即 a 2 ≡ 1 ( m o d p ) a^2 \equiv 1 \pmod p a 2 ≡ 1 ( mod p ) ,当且仅当 a ≡ ± 1 ( m o d p ) a \equiv \pm 1 \pmod p a ≡ ± 1 ( mod p ) .
于是我们得知,在 ( Z / p Z ) × (\mathbb Z / p \mathbb Z)^\times ( Z / p Z ) × 里,仅有 [ 1 ] p [1]_p [ 1 ] p 和 [ p − 1 ] p [p - 1]_p [ p − 1 ] p 的逆元是其自身,其他数两两配对,互为逆元.
Wilson 定理
设素数 p > 2 p > 2 p > 2 ,则
( p − 1 ) ! ≡ − 1 ( m o d p ) (p - 1)! \equiv -1 \pmod p ( p − 1 )! ≡ − 1 ( mod p ) 证明
由于 ( Z / p Z ) × (\mathbb Z / p \mathbb Z)^\times ( Z / p Z ) × 里逆元的配对
( p − 1 ) ! = 1 ⋅ 2 ⋅ ⋯ ⋅ ( p − 2 ) ⏟ pairs ⋅ ( p − 1 ) ≡ 1 ⋅ ( p − 1 ) ≡ − 1 ( m o d p ) \begin{aligned}
(p - 1)! &= 1 \cdot \underbrace{2 \cdot \cdots \cdot (p - 2)}_{\text{pairs}} \cdot (p - 1) \\
&\equiv 1 \cdot (p - 1) \\
&\equiv -1 \pmod p
\end{aligned} ( p − 1 )! = 1 ⋅ pairs 2 ⋅ ⋯ ⋅ ( p − 2 ) ⋅ ( p − 1 ) ≡ 1 ⋅ ( p − 1 ) ≡ − 1 ( mod p ) 二次同余方程
前面我们已经完全掌握了线性同余方程解的情况.
设素数 p > 2 p > 2 p > 2 ,a , b , c ∈ Z a, b, c \in \mathbb Z a , b , c ∈ Z ,a ⊥ p a \perp p a ⊥ p (即 p ∤ a p \nmid a p ∤ a ),欲解二次同余方程
a x 2 + b x + c ≡ 0 ( m o d p ) ax^2 + bx + c \equiv 0 \pmod p a x 2 + b x + c ≡ 0 ( mod p ) 尝试配方:为了避免求解 a a a 的平方根,两边同时乘以 4 a 4a 4 a ,前后两式的等价性由 4 a ⊥ p 4a \perp p 4 a ⊥ p 保证:
( 2 a x + b ) 2 ≡ ( b 2 − 4 a c ) ( m o d p ) (2ax + b)^2 \equiv (b^2 - 4ac) \pmod p ( 2 a x + b ) 2 ≡ ( b 2 − 4 a c ) ( mod p ) 记 y = 2 a x + b y = 2ax + b y = 2 a x + b ,Δ = b 2 − 4 a c \Delta = b^2 - 4ac Δ = b 2 − 4 a c ,则
y 2 ≡ Δ ( m o d p ) y^2 \equiv \Delta \pmod p y 2 ≡ Δ ( mod p ) 这意味着我们必须去研究这个方程解的存在性:怎样的 Δ \Delta Δ ,才能作为模 p p p 意义下的平方数?
Z 13 ∗ \mathbb Z_{13}^* Z 13 ∗ 的平方数如下:
1 2 3 4 5 6 7 8 9 10 11 12 1 4 9 3 12 10 10 12 3 9 4 1
只有 { 1 , 3 , 4 , 9 , 10 , 12 } \{1, 3, 4, 9, 10, 12\} { 1 , 3 , 4 , 9 , 10 , 12 } 这些数才能作为平方数在模 13 13 13 意义下被开根.
二次剩余
设素数 p > 2 p > 2 p > 2 ,a ∈ Z a \in \mathbb Z a ∈ Z ,p ∤ a p \nmid a p ∤ a ,若
∃ x ∈ Z , a ≡ x 2 ( m o d p ) \exists\, x \in \mathbb Z, \quad a \equiv x^2 \pmod p ∃ x ∈ Z , a ≡ x 2 ( mod p ) 则称 a a a 是模 p p p 的二次剩余(Q R \mathbf{QR} QR ) ,否则是二次非剩余(Q N R \mathbf{QNR} QNR ) .记
Q R p = { [ a ] p : ∃ x ∈ Z , a ≡ x 2 ( m o d p ) } Q N R p = ( Z / p Z ) × ∖ Q R p \begin{aligned}
\mathbb{QR}_p &= \{[a]_p : \exists\, x \in \mathbb Z, \: a \equiv x^2 \pmod p\} \\
\mathbb{QNR}_p &= (\mathbb Z / p \mathbb Z)^\times \setminus \mathbb{QR}_p
\end{aligned} QR p QNR p = {[ a ] p : ∃ x ∈ Z , a ≡ x 2 ( mod p )} = ( Z / p Z ) × ∖ QR p
1 1 1 总是 Q R \mathbf{QR} QR .
Q R p \mathbb{QR}_p QR p 在 ( Z / p Z ) × (\mathbb Z / p \mathbb Z)^\times ( Z / p Z ) × 上对称分布.
设素数 p > 2 p > 2 p > 2 ,p ∤ a p \nmid a p ∤ a ,因为 ( p − b ) 2 ≡ b 2 ( m o d p ) (p - b)^2 \equiv b^2 \pmod p ( p − b ) 2 ≡ b 2 ( mod p ) 总成立,所以方程
x 2 ≡ a ( m o d p ) x^2 \equiv a \pmod p x 2 ≡ a ( mod p )
或无解 ,或至少有两个不同余解.下面将说明:若有解,则仅有两解 .
任取两解 x 1 2 ≡ x 2 2 ≡ a ( m o d p ) x_1^2 \equiv x_2^2 \equiv a \pmod p x 1 2 ≡ x 2 2 ≡ a ( mod p ) 得
x 1 2 − x 2 2 = ( x 1 + x 2 ) ( x 1 − x 2 ) ≡ 0 ( m o d p ) x_1^2 - x_2^2 = (x_1 + x_2)(x_1 - x_2) \equiv 0 \pmod p x 1 2 − x 2 2 = ( x 1 + x 2 ) ( x 1 − x 2 ) ≡ 0 ( mod p )
这意味着任取两解,形式都仅有两种:x 1 ≡ ± x 2 ( m o d p ) x_1 \equiv \pm x_2 \pmod p x 1 ≡ ± x 2 ( mod p ) .
因此所有解都仅有该两种形式,方程有且仅有两个不同余解.
设素数 p > 2 p > 2 p > 2 ,则 # Q R p = # Q N R p = ( p − 1 ) / 2 \#\mathbb{QR}_p = \#\mathbb{QNR}_p = (p - 1) / 2 # QR p = # QNR p = ( p − 1 ) /2 ,其中
Q R p = { [ 1 2 ] p , [ 2 2 ] p , ⋯ , [ ( ( p − 1 ) / 2 ) 2 ] p } \mathbb{QR}_p = \{[1^2]_p, [2^2]_p, \cdots, [((p - 1) / 2)^2]_p\} QR p = {[ 1 2 ] p , [ 2 2 ] p , ⋯ , [(( p − 1 ) /2 ) 2 ] p }
Legendre 符号
容易验证 Q R \mathbf{QR} QR 和 Q N R \mathbf{QNR} QNR 之间的运算呈现出类似 { − 1 , 1 } \{-1, 1\} { − 1 , 1 } 模 p p p 乘法群的形式
Q R ⋅ Q R = Q R Q R ⋅ Q N R = Q N R Q N R ⋅ Q R = Q N R Q N R ⋅ Q N R = Q R \begin{aligned}
\mathbf{QR} \cdot \mathbf{QR} &= \mathbf{QR} \\
\mathbf{QR} \cdot \mathbf{QNR} &= \mathbf{QNR} \\
\mathbf{QNR} \cdot \mathbf{QR} &= \mathbf{QNR} \\
\mathbf{QNR} \cdot \mathbf{QNR} &= \mathbf{QR} \\
\end{aligned} QR ⋅ QR QR ⋅ QNR QNR ⋅ QR QNR ⋅ QNR = QR = QNR = QNR = QR 于是我们定义 Legendre 符号 (素数 p > 2 p > 2 p > 2 )
( a p ) = { − 1 , a 是模 p 的 Q N R 0 , p ∣ a 1 , a 是模 p 的 Q R \Big(\dfrac{a}{p}\Big) =
\begin{cases}
-1, & a \:\text{是模}\: p \:\text{的}\: \mathbf{QNR} \\
0, & p \mid a \\
1, & a \:\text{是模}\: p \:\text{的}\: \mathbf{QR} \\
\end{cases} ( p a ) = ⎩ ⎨ ⎧ − 1 , 0 , 1 , a 是模 p 的 QNR p ∣ a a 是模 p 的 QR 容易验证
ψ : ( Z / p Z ) × → { − 1 , 1 } [ a ] p ↦ ( a p ) \begin{aligned}
\psi: (\mathbb Z / p \mathbb Z)^\times &\rightarrow \{-1, 1\} \\
[a]_p &\mapsto \Big(\dfrac{a}{p}\Big)
\end{aligned} ψ : ( Z / p Z ) × [ a ] p → { − 1 , 1 } ↦ ( p a ) 是满同态,于是我们可以用代数的方法研究二次剩余.
满同态保持的积性
素数 p > 2 p > 2 p > 2 ,a , b ∈ Z a,b \in \mathbb Z a , b ∈ Z ,p ∤ a , b p \nmid a, b p ∤ a , b ,我们有
( a p ) ( b p ) = ( a b p ) \Big(\dfrac{a}{p}\Big)\Big(\dfrac{b}{p}\Big) = \Big(\dfrac{ab}{p}\Big) ( p a ) ( p b ) = ( p ab ) 特别地,根据定义,( a 2 p ) = 1 (\frac{a^2}{p}) = 1 ( p a 2 ) = 1 .
Q R p \mathbb{QR}_p QR p 在乘法上构成 ( Z / p Z ) × (\mathbb Z / p \mathbb Z)^\times ( Z / p Z ) × 的子群.
容易验证
φ : ( Z / p Z ) × → Q R p [ a ] p ↦ [ a 2 ] p \begin{aligned}
\varphi : (\mathbb Z / p \mathbb Z)^\times &\rightarrow \mathbb{QR}_p \\
[a]_p &\mapsto [a^2]_p
\end{aligned} φ : ( Z / p Z ) × [ a ] p → QR p ↦ [ a 2 ] p
是群同态,观察得知 ker φ = { 1 , p − 1 } \ker \varphi = \{1, p - 1\} ker φ = { 1 , p − 1 } ,根据群的同态基本定理 (第一同构定理) ,
( Z / p Z ) × ≥ Q R p ≅ ( Z / p Z ) × / ker φ ∣ Q R p ∣ = ∣ ( Z / p Z ) × ∣ ∣ ker φ ∣ = p − 1 2 \begin{aligned}
(\mathbb Z / p \mathbb Z)^\times \ge \mathbb{QR}_p &\cong (\mathbb Z / p \mathbb Z)^\times / \ker \varphi \\
|\mathbb{QR}_p| &= \dfrac{|(\mathbb Z / p \mathbb Z)^\times|}{|\ker \varphi|} = \dfrac{p - 1}{2}
\end{aligned} ( Z / p Z ) × ≥ QR p ∣ QR p ∣ ≅ ( Z / p Z ) × / ker φ = ∣ ker φ ∣ ∣ ( Z / p Z ) × ∣ = 2 p − 1
Euler 准则
设素数 p > 2 p > 2 p > 2 ,a ∈ Z a \in \mathbb Z a ∈ Z ,p ∤ a p \nmid a p ∤ a .
判断 a a a 是否为 Q R \mathbf{QR} QR ,相当于观察 ( a p ) (\frac{a}{p}) ( p a ) 的值,但它无法被直接计算,所以需要我们去构造有关 a a a 和 p p p 的式子去得到正确的 ( a p ) (\frac{a}{p}) ( p a ) .注意到值域是 { ± 1 } \{\pm 1\} { ± 1 } ,我们联想到 1 1 1 的平方根,所以先去找到模 p p p 等于 1 1 1 、有关 a a a 和 p p p 的式子,这又让我们联想到 Fermat 小定理
a p − 1 ≡ 1 ( m o d p ) a^{p-1} \equiv 1 \pmod p a p − 1 ≡ 1 ( mod p ) 注意到 p − 1 p - 1 p − 1 是偶数,不难得到平方根
a ( p − 1 ) / 2 ≡ ± 1 ( m o d p ) a^{(p-1)/2} \equiv \pm 1 \pmod p a ( p − 1 ) /2 ≡ ± 1 ( mod p ) 可将其作为 ( a p ) (\frac{a}{p}) ( p a ) 的计算式
( a p ) ≡ a ( p − 1 ) / 2 ( m o d p ) \Big(\frac{a}{p}\Big) \equiv a^{(p-1)/2} \pmod p ( p a ) ≡ a ( p − 1 ) /2 ( mod p )
我们人为构造了
ϕ : ( Z / p Z ) × → ( Z / p Z ) × [ a ] p ↦ [ a ( p − 1 ) / 2 ] p \begin{aligned}
\phi: (\mathbb Z / p \mathbb Z)^\times &\rightarrow (\mathbb Z / p \mathbb Z)^\times \\
[a]_p &\mapsto [a^{(p-1)/2}]_p
\end{aligned} ϕ : ( Z / p Z ) × [ a ] p → ( Z / p Z ) × ↦ [ a ( p − 1 ) /2 ] p
Euler 准则就是 ker ϕ = ker ψ \ker \phi = \ker \psi ker ϕ = ker ψ .
证明
当 ( a p ) = 1 (\frac{a}{p}) = 1 ( p a ) = 1 时,即 ∃ x ∈ Z , x 2 ≡ a ( m o d p ) \exists\, x \in \mathbb Z, x^2 \equiv a \pmod p ∃ x ∈ Z , x 2 ≡ a ( mod p ) ,此时
a ( p − 1 ) / 2 ≡ ( x 2 ) ( p − 1 ) / 2 = x p − 1 ( m o d p ) a^{(p-1)/2} \equiv (x^2)^{(p-1)/2} = x^{p-1} \pmod p a ( p − 1 ) /2 ≡ ( x 2 ) ( p − 1 ) /2 = x p − 1 ( mod p ) 是否有 p ∤ x p \nmid x p ∤ x ?结论是肯定的:如若 p ∣ x p \mid x p ∣ x ,由 x 2 ≡ a ( m o d p ) x^2 \equiv a \pmod p x 2 ≡ a ( mod p ) 得到 p ∣ ( x + a ) ( x − a ) p \mid (x + a)(x - a) p ∣ ( x + a ) ( x − a ) ,又由 p p p 的素性,必有 p ∣ ( x + a ) p \mid (x + a) p ∣ ( x + a ) 或 p ∣ ( x − a ) p \mid (x - a) p ∣ ( x − a ) ,两者皆会导出 p ∣ a p \mid a p ∣ a 的矛盾.因此由 Fermat 小定理可得
a ( p − 1 ) / 2 ≡ 1 ( m o d p ) a^{(p-1)/2} \equiv 1 \pmod p a ( p − 1 ) /2 ≡ 1 ( mod p ) 当 ( a p ) = − 1 (\frac{a}{p}) = -1 ( p a ) = − 1 时,即 ∄ x ∈ Z , x 2 ≡ a ( m o d p ) \nexists\, x \in \mathbb Z, x^2 \equiv a \pmod p ∄ x ∈ Z , x 2 ≡ a ( mod p ) ,任取 c ∈ Z p ∗ c \in \mathbb Z_p^* c ∈ Z p ∗ ,考查线性同余方程
c x ≡ a ( m o d p ) cx \equiv a \pmod p c x ≡ a ( mod p ) 由于 c ⊥ p c \perp p c ⊥ p ,方程在模 p p p 意义下有唯一解,且必有 x ≢ c ( m o d p ) x \not\equiv c \pmod p x ≡ c ( mod p ) ,否则与 a a a 是 Q N R \mathbf{QNR} QNR 矛盾.因此在 Z p ∗ \mathbb Z_p^* Z p ∗ 内,乘积与 a a a 模 p p p 同余的数两两配对,一共有 ( p − 1 ) / 2 (p - 1) / 2 ( p − 1 ) /2 条同余式.因此
( p − 1 ) ! ≡ a ( p − 1 ) / 2 ≡ − 1 ( m o d p ) (p - 1)! \equiv a^{(p-1)/2} \equiv -1 \pmod p ( p − 1 )! ≡ a ( p − 1 ) /2 ≡ − 1 ( mod p ) 小试牛刀
素数 p > 2 p > 2 p > 2 ,探究
x 2 ≡ − 1 ( m o d p ) x^2 \equiv -1 \pmod p x 2 ≡ − 1 ( mod p ) 先看何时有解,我们运用 Euler 准则
( − 1 p ) ≡ ( − 1 ) ( p − 1 ) / 2 ( m o d p ) \Big(\dfrac{-1}{p}\Big) \equiv (-1)^{(p-1)/2} \pmod p ( p − 1 ) ≡ ( − 1 ) ( p − 1 ) /2 ( mod p ) 对 ( p − 1 ) / 2 ∈ Z (p-1)/2 \in \mathbb Z ( p − 1 ) /2 ∈ Z 分类讨论:
当 ( p − 1 ) / 2 ≡ 0 ( m o d 2 ) (p-1)/2 \equiv 0 \pmod 2 ( p − 1 ) /2 ≡ 0 ( mod 2 ) ,即 p ≡ 1 ( m o d 4 ) p \equiv 1 \pmod 4 p ≡ 1 ( mod 4 ) 时,( − 1 p ) = 1 (\frac{-1}{p}) = 1 ( p − 1 ) = 1 ,方程有解.
当 ( p − 1 ) / 2 ≡ 1 ( m o d 2 ) (p-1)/2 \equiv 1 \pmod 2 ( p − 1 ) /2 ≡ 1 ( mod 2 ) ,即 p ≡ 3 ( m o d 4 ) p \equiv 3 \pmod 4 p ≡ 3 ( mod 4 ) 时,( − 1 p ) = − 1 (\frac{-1}{p}) = -1 ( p − 1 ) = − 1 ,方程无解.
若方程有解,试求之.容易联想到 Wilson 定理
( p − 1 ) ! ≡ − 1 ( m o d p ) (p - 1)! \equiv -1 \pmod p ( p − 1 )! ≡ − 1 ( mod p ) 考虑将左式凑成平方的形式,而且我们知道 Q R \mathbf{QR} QR 对称分布的特性
( p − 1 ) ! ≡ ( p − 1 2 ) ! ( − 1 ) ( p − 1 ) / 2 ( p − 1 2 ) ! ≡ ( ( p − 1 2 ) ! ) 2 ≡ − 1 ( m o d p ) \begin{aligned}
(p - 1)! &\equiv \Big(\dfrac{p-1}{2}\Big)! (-1)^{(p-1)/2} \Big(\dfrac{p-1}{2}\Big)! \\
&\equiv \Big(\Big(\dfrac{p-1}{2}\Big)!\Big)^2 \\
&\equiv -1 \pmod p
\end{aligned} ( p − 1 )! ≡ ( 2 p − 1 ) ! ( − 1 ) ( p − 1 ) /2 ( 2 p − 1 ) ! ≡ ( ( 2 p − 1 ) ! ) 2 ≡ − 1 ( mod p ) 因此
x ≡ ± ( p − 1 2 ) ! ( m o d p ) x \equiv \pm \Big(\dfrac{p-1}{2}\Big)! \pmod p x ≡ ± ( 2 p − 1 ) ! ( mod p )