文章目录
abstract
数论(Number Theory)是数学中专门研究整数及其性质的学科。数论的历史可以追溯到古代,至今仍是数学中最富有魅力和活力的领域之一。
数论主要研究对象是整数、质数(prime numbers)以及它们之间的关系和规律。(小数不是数论讨论的重点,大多性质或定理描述的内容是关于整数)
由于其探讨的对象和问题往往与简单的算术现象紧密相关,数论有时被称为“高等算术”。
数论的主要内容
本文仅讨论最基础的初等数论知识,它们在计算机科学和程序设计方面有重要应用,非数学专业人员往往对这方面的知识比较欠缺
以前高中阶段,有些教材提供了数论基础章节,比如人教版选修
-
初等数论(Elementary Number Theory)
- 研究基本的整数性质,如因数分解、最大公约数和最小公倍数、同余(congruences)、模运算(modular arithmetic)等。欧几里得算法和费马小定理都是初等数论中的基本工具。
- 初等数论是数论的一个分支,主要研究整数的基本性质和基本运算,通常不借助于更高级的数学工具(如复分析或抽象代数)。尽管称为“初等”,初等数论中包含了许多深刻而有趣的理论,涉及整数的分解、同余关系、素数性质等内容。
-
代数数论(Algebraic Number Theory)
-
解析数论(Analytic Number Theory)
-
几何数论(Geometric Number Theory)
-
计算数论(Computational Number Theory)
数论的重要性和应用
- 密码学
- 数据安全和隐私
- 编码理论
- …
整除
在日常生活中,我们经常遇到整数的整除问题。例如,一箱苹果有48个,按个数分给7个人,能否分配公平?你马上知道,这不可能,原因是7不能整除48。
又如,本年级105人参加团体操,要求队形呈长方形( n n n行 m m m列)(不能排成一行或一列),问排列的行数如何选择?你会立即给出答案:行数可为3,5,7,15,21,35。这是因为只有这六个正整数能整除105。
研究整除问题,不仅是现实的需要,而且饶有兴味。研究整数的整除不仅是数论的开端,而且所形成的方法与理论是数论的基础。
整除的定义
这里讨论的是整数的整除性
对于任意整数
a
a
a 和
b
b
b,如果
a
≠
0
a \neq 0
a=0,我们说
a
a
a 整除
b
b
b(记作
a
∣
b
a \mid b
a∣b),当且仅当存在整数
c
c
c 使得
b
=
a
⋅
c
b = a \cdot c
b=a⋅c (1)
。
符号|
是整除号,整除号的左边是因数(称为整除数,在式(1)中充当除数),右边是被整除数,在式(1)中充当积;
因此整除号两边用含义直接表示为整除数|被整除数
或因数|倍数
a ∣ b a|b a∣b也可以读作: b b b被 a a a整除,或者读作 a a a是 b b b的约数
整除@约数@倍数
设 a , b a, b a,b 是整数, b ≠ 0 b \neq 0 b=0,如果有整数 q q q,使 a = q b a = qb a=qb,则称 b b b 整除 a a a,记作 b ∣ a b | a b∣a。并称 b b b 是 a a a 的约数(或因数), a a a 是 b b b 的倍数。否则称 b b b 不能整除 a a a,记作 b ∤ a b \nmid a b∤a。
- 例如,7 | 105,105 是 7 的倍数; 7 ∤ 48 7\nmid 48 7∤48,48 不是 7 的倍数;1、3、5、7、15、21、35、105 都是 105 的约数;1 和 11 是 11 的约数;等等。
注意
- 0 不是任何整数的约数,但 0 是任何整数的倍数(任何数乘以0都是0)。
- (说明了倍数不一定比约数要小, b ∣ a b|a b∣a不揭示 a , b a,b a,b的大小关系),除非指定 a ≠ 0 a\neq{0} a=0,那么有 ∣ b ∣ ⩽ ∣ a ∣ |b|\leqslant|a| ∣b∣⩽∣a∣
- 符号
b
∣
a
b | a
b∣a 本身包含了条件
b
≠
0
b \neq 0
b=0。
a
,
b
a, b
a,b 可以是负整数。
- 0 ∣ 0 0|0 0∣0这种写法是不正确的,和整除定义不符
正约数
- 一个正整数的正约数是我研究整除性质的重要对象
- 一个整数的所有正约数中非1的最小正约数,中间正约数,最大正约数是许多命题或定理的讨论对象
相关概念的辨析
在数论中,整除、被整除、除、除以这些术语虽然有联系,但各自含义稍有不同。理解这些概念的差别有助于更准确地掌握数学表达。以下是对这些概念的辨析:
整除(Divisibility)
整除是数论中的一个核心概念,描述了两个整数之间的关系。
若 a ∣ b a \mid b a∣b,表示“ a a a 整除 b b b”或“ b b b 能被 a a a 整除”。整除的定义是:
- 如果 a ≠ 0 a \neq 0 a=0 且存在整数 c c c,使得 b = a ⋅ c b = a \cdot c b=a⋅c,那么 a ∣ b a \mid b a∣b 成立。
a ∣ b a|b a∣b可以理解为
- 用 a a a来分 b b b,分完后每份都是 a a a
- 把 b b b平均分成 a a a份,每份都是整数
例如, 3 ∣ 6 3 \mid 6 3∣6 表示3整除6,这个命题成立,因为存在整数2使得 6 = 3 ⋅ 2 6 = 3 \cdot 2 6=3⋅2。在这种表达中:
- 被整除数 是 b b b(即6)。
- 整除数 是 a a a(即3)。
被整除(Being Divisible)
被整除的概念是从整除的角度反过来看。例如,在“3 整除 6”或“ 3 ∣ 6 3 \mid 6 3∣6”这个表达中,6被3整除。换句话说:
- 如果 a ∣ b a \mid b a∣b,那么 b b b 是 被整除数,表示 b b b 能够被 a a a 整除。
在许多表述中,“能被整除”常用于表达一个数是另一个数的倍数,例如“6 能被 3 整除”意指6是3的倍数。
除以@除
- 式子 a / b a/b a/b或 a ÷ b a\div{b} a÷b读作 a a a除以 b b b
- 国内由于历史遗留原因,有些地方称 a / b a/b a/b为b除a,表示用 b b b分 a a a
整除的性质👺
- 若 b ∣ a b | a b∣a,$ c | b$,则 c ∣ a c | a c∣a(传递性)
- 若 c ∣ a , c ∣ b c | a, c | b c∣a,c∣b,则对任意整数 x , y x, y x,y(可以为负整数),必有 c ∣ ( a x + b y ) c | (ax + by) c∣(ax+by)(线性组合性质,同一个因数的不同倍数间的线性组合仍然是这个因数的倍数)
- 若 b ∣ a , a ≠ 0 b | a, a \neq 0 b∣a,a=0,则 ∣ b ∣ ⩽ ∣ a ∣ |b| \leqslant |a| ∣b∣⩽∣a∣;若 b ∣ a b|a b∣a, ∣ a ∣ < ∣ b ∣ |a|<|b| ∣a∣<∣b∣,则 ∣ a ∣ = a = 0 |a|=a=0 ∣a∣=a=0
- 若 b ∣ a , a ≠ 0 b | a, a \neq 0 b∣a,a=0,则 a b ∣ a \frac{a}{b} \mid a ba∣a
- 若 a , b ∈ Z + a,b\in\mathbb{Z_{+}} a,b∈Z+, a ∣ b a|b a∣b且 b ∣ a b|a b∣a,则 a = b a=b a=b
- 若 a , m ∈ Z a,m\in\mathbb{Z} a,m∈Z, a ≠ 0 a\neq{0} a=0, a ∣ a m a|am a∣am
- 若 a ∣ b a|b a∣b, m ∈ Z , m ≠ 0 m\in\mathbb{Z},m\neq{0} m∈Z,m=0,则 a m ∣ b m am|bm am∣bm
- 若 a b = m ab=m ab=m, ( a , b , m ∈ Z , m ≠ 0 ) (a,b,m\in\mathbb{Z},m\neq{0}) (a,b,m∈Z,m=0),则 a ∣ m , b ∣ m a|m,b|m a∣m,b∣m
它们都可以通过定义推导和验证
举例应用👺
求证:设 3 ∣ m , 7 ∣ m 3 \mid m, 7 \mid m 3∣m,7∣m,则 21 ∣ m 21 \mid m 21∣m
- 这个命题的证明有一定的技巧性,需要配出来线性组合性质的系数来利用对应的整除性质进行证明
证明:
由 3 ∣ m 3 \mid m 3∣m,可写 m = 3 q m = 3q m=3q。 ( q ∈ Z ) (q\in\mathbb{Z}) (q∈Z)
由此及 7 ∣ m 7 \mid m 7∣m 知 7 ∣ 3 q 7 \mid 3q 7∣3q。由 7 ∣ 7 q , 7 ∣ 3 q 7 \mid 7q, 7 \mid 3q 7∣7q,7∣3q 及线性组合性质可得 7 ∣ [ 7 q − 2 × ( 3 q ) ] 7 \mid [7q - 2 \times (3q)] 7∣[7q−2×(3q)],即 7 ∣ q 7 \mid q 7∣q。
因此可令 q = 7 d q = 7d q=7d,于是有 m = 3 q = 3 × 7 d = 21 d m = 3q = 3 \times 7d = 21d m=3q=3×7d=21d,故 21 ∣ m 21 \mid m 21∣m。
类似地,若 2 ∣ A 2|A 2∣A, 3 ∣ A 3|A 3∣A,则 6 ∣ A 6|A 6∣A这个命题可以类似的方法进行证明
令 A = 2 q A=2q A=2q,则 3 ∣ 2 q 3|2q 3∣2q,由整除性质可知 3 ∣ 3 q 3|3q 3∣3q一定成立,根据整除的线性组合性质, 3 ∣ ( 3 q − 2 q ) 3|(3q-2q) 3∣(3q−2q),即 3 ∣ q 3|q 3∣q,从而 6 ∣ 2 q 6|2q 6∣2q
又因为 A = 2 q A=2q A=2q,得出 6 ∣ A 6|A 6∣A
其他性质
仅举例说明其中的经典性质
正约数性质1
设
q
1
,
q
2
,
⋯
,
q
k
q_1, q_2, \cdots, q_k
q1,q2,⋯,qk 是正整数
n
n
n 的所有的正约数,证明
(
q
1
q
2
⋯
q
k
)
2
=
n
k
(q_1 q_2 \cdots q_k)^2 = n^k
(q1q2⋯qk)2=nk
证明:
由整除的性质, m 1 = n q 1 m_1=\dfrac{n}{q_1} m1=q1n, m 2 = n q 2 m_{2}=\dfrac{n}{q_2} m2=q2n, ⋯ \cdots ⋯, m k = n q k m_{k}=\dfrac{n}{q_k} mk=qkn 也是 n n n 的全部正约数。
显然 q 1 , ⋯ , q k q_{1},\cdots,q_{k} q1,⋯,qk中任意两个互不相同, n n n的所有正约数的集合可以表示为 S = { q 1 , q 2 , ⋯ , q k } S=\set{q_{1},q_{2},\cdots,q_{k}} S={q1,q2,⋯,qk}, q i ≠ q j , ( i ≠ j , i , j ∈ { 1 , 2 , ⋯ , k } ) q_{i}\neq{q_{j}},(i\neq{j},i,j\in\set{1,2,\cdots,k}) qi=qj,(i=j,i,j∈{1,2,⋯,k})
方法1
显然 m i ∈ S , ( i = 1 , 2 , ⋯ , k ) m_{i}\in{S},(i=1,2,\cdots,k) mi∈S,(i=1,2,⋯,k),并且 m i = n q i ≠ m j = n q j , ( i ≠ j , i , j ∈ { 1 , 2 , ⋯ , k } ) m_{i}=\frac{n}{q_{i}}\neq{m_{j}}=\frac{n}{q_{j}},(i\neq{j},i,j\in\set{1,2,\cdots,k}) mi=qin=mj=qjn,(i=j,i,j∈{1,2,⋯,k})
因此 m 1 , ⋯ , m k m_{1},\cdots,m_{k} m1,⋯,mk构成的集合表示为 M = { m 1 , ⋯ , m k } M=\set{m_{1},\cdots,m_{k}} M={m1,⋯,mk},而 M M M的元素全部来自于集合 S S S,所以 M ⊆ S M\sube{S} M⊆S
又因为 M , S M,S M,S各自有 k k k个不同元素,所有 M = S M=S M=S;所有 q 1 ⋯ q k q_{1}\cdots{q_{k}} q1⋯qk= m 1 ⋯ m k m_{1}\cdots{m_{k}} m1⋯mk
由条件可知 ∏ i = 1 k q i m i = n k \prod_{i=1}^{k}q_{i}m_{i}=n^{k} ∏i=1kqimi=nk;从而 ( ∏ i = 1 k q i ) ( ∏ i = 1 k m i ) (\prod_{i=1}^{k}q_{i})(\prod_{i=1}^{k}m_{i}) (∏i=1kqi)(∏i=1kmi)= n k n^{k} nk
所以 ( q 1 q 2 ⋯ q k ) 2 = n k (q_1 q_2 \cdots q_k)^2 = n^k (q1q2⋯qk)2=nk
方法2
不妨设 q 1 < q 2 < ⋯ < q k q_1 < q_2 < \cdots < q_k q1<q2<⋯<qk,则有 q 1 = n q k , q 2 = n q k − 1 , ⋯ , q k = n q 1 q_1 = \dfrac{n}{q_k}, q_2 = \dfrac{n}{q_{k-1}}, \cdots, q_k = \dfrac{n}{q_1} q1=qkn,q2=qk−1n,⋯,qk=q1n。
- 实际上 q i q k − i + 1 = n q_{i}q_{k-i+1}=n qiqk−i+1=n, i = 1 , 2 , ⋯ , k i=1,2,\cdots,k i=1,2,⋯,k,该结论的解释附加在后面的补充
因此, q 1 q 2 ⋯ q k = n q k × n q k − 1 × ⋯ × n q 1 q_1 q_2 \cdots q_k = \dfrac{n}{q_k} \times \dfrac{n}{q_{k-1}} \times \cdots \times \dfrac{n}{q_1} q1q2⋯qk=qkn×qk−1n×⋯×q1n ⇒ ( q 1 q 2 ⋯ q k ) 2 = n k . \Rightarrow (q_1 q_2 \cdots q_k)^2 = n^k. ⇒(q1q2⋯qk)2=nk.
补充
有些教材中的证明将 q i q k − i + 1 = n q_{i}q_{k-i+1}=n qiqk−i+1=n的结论视为显然,这里稍微讨论一下
-
i
=
1
i=1
i=1
- q 1 q k = n q_{1}q_{k}=n q1qk=n;
-
i
=
2
i=2
i=2,
- 因为 q 1 q k = n q_{1}q_{k}=n q1qk=n, q 2 q j = n q_{2}q_{j}=n q2qj=n必有 j ⩽ k − 1 j\leqslant{k-1} j⩽k−1;如果 j < k − 1 j<k-1 j<k−1,那么说明 q 2 q k − 1 > n q_{2}q_{k-1}>n q2qk−1>n,而 n / q k − 1 ∈ S n/q_{k-1}\in{S} n/qk−1∈S从而只能 a 1 q k − 1 = n a_{1}q_{k-1}=n a1qk−1=n,而这与 q 1 a k = n q_{1}a_{k}=n q1ak=n矛盾,所以 j = k − 1 j=k-1 j=k−1
- 所以 q 2 q k − 1 = n q_{2}q_{k-1}=n q2qk−1=n
-
i
=
3
i=3
i=3
- 因为 q 2 q k − 1 = n q_{2}q_{k-1}=n q2qk−1=n, q 3 q j = n q_{3}q_{j}=n q3qj=n必有 j ⩽ k − 2 j\leqslant{k-2} j⩽k−2;
- 如果 j < k − 2 j<k-2 j<k−2,则 q 3 q k − 2 > n q_{3}q_{k-2}>n q3qk−2>n, n / q k − 2 ∈ S n/q_{k-2}\in{S} n/qk−2∈S,从而只能 q 1 q k − 2 = n q_{1}q_{k-2}=n q1qk−2=n,或者 q 2 q k − 2 = n q_{2}q_{k-2}=n q2qk−2=n;再由前面的结论,这两个情况都不可能,所以 j = k − 2 j=k-2 j=k−2
- 随意 q 3 q k − 2 = n q_{3}q_{k-2}=n q3qk−2=n
- …以此类推, q i q k − i + 1 = n q_{i}q_{k-i+1}=n qiqk−i+1=n
例
例如,1, 2, 3, 4, 6, 12 是 12 的全部正约数,因而
12
1
,
12
2
,
12
3
,
12
4
,
12
6
,
12
12
\dfrac{12}{1}, \dfrac{12}{2}, \dfrac{12}{3}, \dfrac{12}{4}, \dfrac{12}{6}, \dfrac{12}{12}
112,212,312,412,612,1212
也是 12 的全部正约数。后者不过是将前者倒过来排列。因此
1
×
2
×
3
×
4
×
6
×
12
=
12
12
×
12
6
×
12
4
×
12
3
×
12
2
×
12
1
,
1 \times 2 \times 3 \times 4 \times 6 \times 12 = \dfrac{12}{12} \times \dfrac{12}{6} \times \dfrac{12}{4} \times \dfrac{12}{3} \times \dfrac{12}{2} \times \dfrac{12}{1},
1×2×3×4×6×12=1212×612×412×312×212×112,
⇒
(
1
×
2
×
3
×
4
×
6
×
12
)
2
=
1
2
6
\Rightarrow (1 \times 2 \times 3 \times 4 \times 6 \times 12)^2 = 12^6
⇒(1×2×3×4×6×12)2=126,(k=6)
正约数性质2
若正整数 n n n 的全部正约数有奇数个,则 n n n 为平方数
证明:将 n n n 的全部正约数从最小到最大排列成一列: q 1 , q 2 , ⋯ , q k , q k + 1 , ⋯ , q 2 k + 1 q_1, q_2, \cdots, q_k, q_{k+1}, \cdots, q_{2k+1} q1,q2,⋯,qk,qk+1,⋯,q2k+1 (这里设 n n n的正约数个数为 2 k + 1 2k+1 2k+1个)
由上一性质可知, q 1 , ⋯ , q 2 k + 1 q_{1},\cdots,q_{2k+1} q1,⋯,q2k+1与约数 n q 2 k + 1 , ⋯ , n q k + 1 , n q k , ⋯ , n q 1 \frac{n}{q_{2k+1}}, \cdots, \frac{n}{q_{k+1}}, \frac{n}{q_{k}}, \cdots, \frac{n}{q_{1}} q2k+1n,⋯,qk+1n,qkn,⋯,q1n 对应相等。即 q i q 2 k + 2 − i = n q_{i}q_{2k+2-i}=n qiq2k+2−i=n,当 i = k + 1 i=k+1 i=k+1时, q k + 1 q k + 1 = n q_{k+1}q_{k+1}=n qk+1qk+1=n;
从另一个角度, S n = 1 , 2 , ⋯ , k , ⋯ , 2 k + 1 S_{n}=1,2,\cdots,k,\cdots,2k+1 Sn=1,2,⋯,k,⋯,2k+1这个序列有奇数个元素,中间元素是第 k + 1 k+1 k+1位于中央的一对是 q k + 1 , n q k + 1 q_{k+1}, \frac{n}{q_{k+1}} qk+1,qk+1n,因此 q k + 1 = n q k + 1 q_{k+1} = \frac{n}{q_{k+1}} qk+1=qk+1n,于是 n = q k + 1 2 n = q_{k+1}^2 n=qk+12。
补充:
- 为什么序列 S n S_{n} Sn的中间位置是 k + 1 k+1 k+1?首先序列 S n S_{n} Sn含有奇数个元素,那么一定存在正中间位置,且其两边的元素数量一样多,两边都是 ( 2 k + 1 − 1 ) / 2 (2k+1-1)/2 (2k+1−1)/2= k k k,说明第 k + 1 k+1 k+1个元素是中间元素(从正数倒数都是第 k + 1 k+1 k+1个)
有意思的整除问题或性质
-
三个连续整数的和是3的倍数
- 设 a ∈ Z a\in{\mathbb{Z}} a∈Z,是三个连续整数中最小的数,则三数之和为 S = a + ( a + 1 ) + ( a + 2 ) S=a+(a+1)+(a+2) S=a+(a+1)+(a+2)= 3 a + 3 3a+3 3a+3= 3 ( a + 1 ) 3(a+1) 3(a+1),
- 所以 3 ∣ S 3|S 3∣S, S S S是3的倍数
-
若 c ∣ ( a + b ) c|(a+b) c∣(a+b),则 c ∣ ( a 3 + b 3 ) c|(a^3+b^3) c∣(a3+b3)
- 因为 a 3 + b 3 a^3+b^3 a3+b3= ( a + b ) ( a 2 − a b + b 2 ) (a+b)(a^2-ab+b^2) (a+b)(a2−ab+b2),所以 ( a + b ) ∣ ( a 3 + b 3 ) (a+b)|(a^3+b^3) (a+b)∣(a3+b3)
- 又因为 c ∣ ( a + b ) c|(a+b) c∣(a+b),所以 c ∣ ( a 3 + b 3 ) c|(a^3+b^3) c∣(a3+b3)
-
连续三个整数中有且只有一个是3的倍数
- 设 n ∈ Z n\in\mathbb{Z} n∈Z,则 n / 3 n/3 n/3的余数 r = n m o d 3 r=n \mod{3} r=nmod3 ,则 r ∈ { 0 , 1 , 2 } r\in\set{0,1,2} r∈{0,1,2}
- 当 r = 0 r=0 r=0时, n n n是3的倍数
- 当 r = 1 r=1 r=1时, n − 1 , n + 2 n-1,n+2 n−1,n+2是3的倍数
- 当 r = 2 r=2 r=2时, n − 2 , n + 1 n-2,n+1 n−2,n+1是3的倍数
- 由此可见,三类情况下总有
n
,
n
+
1
,
n
+
2
n,n+1,n+2
n,n+1,n+2中有且只有一个是3的倍数
- 同理 n − 2 , n − 1 , n n-2,n-1,n n−2,n−1,n中也至少有一个是3的倍数
- 因此,任意3个连续整数中有且只有一个3的倍数
-
若 n ∈ Z + n\in\mathbb{Z_{+}} n∈Z+,则 6 ∣ [ n ( n + 1 ) ( 2 n + 1 ) ] 6|[n(n+1)(2n+1)] 6∣[n(n+1)(2n+1)]
- 这个问题对于缺乏数学知识面的同学来说看起来有点证明
- 方法1:
- 如果你知道自然数平方和公式: S S S= ∑ i = 1 n i \sum_{i=1}^{n}i ∑i=1ni= 1 6 n ( n + 1 ) ( 2 n + 1 ) \frac{1}{6}n(n+1)(2n+1) 61n(n+1)(2n+1),显然 S ∈ Z + S\in\mathbb{Z_+} S∈Z+那么可以得出 6 ∣ [ n ( n + 1 ) ( 2 n + 1 ) ] 6|[n(n+1)(2n+1)] 6∣[n(n+1)(2n+1)]
- 方法2:
- T T T= n ( n + 1 ) ( 2 n + 1 ) n(n+1)(2n+1) n(n+1)(2n+1)= n ( n + 1 ) ( ( n + 2 ) + ( n − 1 ) ) n(n+1)((n+2)+(n-1)) n(n+1)((n+2)+(n−1))= n ( n + 1 ) ( n + 2 ) + ( n − 1 ) n ( n + 1 ) n(n+1)(n+2)+(n-1)n(n+1) n(n+1)(n+2)+(n−1)n(n+1)
- 可见,
T
T
T可以表示为两组3个连续自然数乘积相加的结果
- 令 A A A= n ( n + 1 ) ( n + 2 ) n(n+1)(n+2) n(n+1)(n+2); B = ( n − 1 ) n ( n + 1 ) B=(n-1)n(n+1) B=(n−1)n(n+1)
- 由于3个连续自然数中一定有偶数(2的倍数)以及3的倍数,所以 2 ∣ A , 3 ∣ A 2|A,3|A 2∣A,3∣A,由本文讨论的整数除性质可推出 6 ∣ A 6|A 6∣A
- 同理有 6 ∣ B 6|B 6∣B
- 从而 6 ∣ ( A + B ) 6|(A+B) 6∣(A+B),即 6 ∣ [ n ( n + 1 ) ( 2 n + 1 ) ] 6|[n(n+1)(2n+1)] 6∣[n(n+1)(2n+1)]
带余除法定理
设
a
,
b
a, b
a,b 是两个整数,其中
b
>
0
b > 0
b>0,则[存在]惟一的一对整数
q
q
q 及
r
r
r,使:
a
=
b
q
+
r
a = bq + r
a=bq+r(1)
,
(
0
≤
r
<
b
)
(0 \leq r < b)
(0≤r<b)
说明:
-
该定理的关键是 r r r的取值范围,因此并不是将 a a a拆分为 b q + r bq+r bq+r的形式就能称为带余除法,余数 r r r的大小比 b b b小,
-
此外,定理中 r r r还是非负的,由于 a , b , q a,b,q a,b,q都是整数,所以 r = a − b q r=a-bq r=a−bq也是一个整数,所以 r r r实际上是非负整数
-
被除数 a a a是整数,也就是带余除法研究对象和数论主要研究对象一致都是整数
证明:分为存在性和唯一性分别证明
存在性
作整数序列
⋯
,
−
3
b
,
−
2
b
,
−
b
,
0
,
b
,
2
b
,
3
b
,
⋯
\cdots, -3b, -2b, -b, 0, b, 2b, 3b, \cdots
⋯,−3b,−2b,−b,0,b,2b,3b,⋯
则
a
a
a 或者等于这个序列的某一项,或者在某相邻两项之间,即存在整数
q
q
q,使
q
b
⩽
a
<
(
q
+
1
)
b
=
q
b
+
b
qb \leqslant a < (q+1)b=qb+b
qb⩽a<(q+1)b=qb+b,可得
0
⩽
a
−
q
b
<
b
0\leqslant{a-qb}<b
0⩽a−qb<b
令
r
=
a
−
q
b
r = a - qb
r=a−qb,因为
q
q
q存在,所以
r
r
r存在,则
0
≤
r
<
b
0 \leq r < b
0≤r<b,
a
=
q
b
+
r
a = qb + r
a=qb+r。
p , r p,r p,r的存在性得证,而且它们的关系是 a = q b + r a=qb+r a=qb+r
或者也可以从余数的角度讨论
- 若 b ∣ a b|a b∣a,则 r = 0 r=0 r=0,而且存在 q q q使得 a = b q a=bq a=bq,即 a = b q + r a=bq+r a=bq+r
- 若
b
∤
a
b\nmid{a}
b∤a,则
r
≠
0
r\neq{0}
r=0,所以存在
q
q
q满足
q
b
<
a
<
q
b
+
b
qb<a<qb+b
qb<a<qb+b,将这个式子变形:
0
<
a
−
q
b
<
b
0<a-qb<b
0<a−qb<b;
- 令 r = a − q b r=a-qb r=a−qb,则 0 < r < b 0<r<b 0<r<b,由于 q q q存在,所以 r = a − q b r=a-qb r=a−qb也存在
- 综上,存在 q , r q,r q,r使得 a = b q + r a=bq+r a=bq+r,且 0 ⩽ r < b 0\leqslant{r}<b 0⩽r<b
而且 q , r q,r q,r存在完全对应的关系(一对一)
唯一性
唯一性命题或结论往往使用反证法,并且构造差式,证明相应差式为0
下面的证明利用了等式变形,绝对值不等式和整除的性质
设
q
1
,
r
1
q_1, r_1
q1,r1 是满足(1)式的另一对整数,则有
b
q
1
+
r
1
=
b
q
+
r
bq_1 + r_1 = bq + r
bq1+r1=bq+r
于是有
b
(
q
−
q
1
)
=
r
1
−
r
b(q-q_1) = r_1 - r
b(q−q1)=r1−r
及
b
∣
q
−
q
1
∣
=
∣
r
1
−
r
∣
b|q-q_1| = |r_1-r|
b∣q−q1∣=∣r1−r∣。
因为 r r r 和 r 1 r_1 r1 都是小于 b b b 的非负整数,所以 0 ≤ ∣ r 1 − r ∣ < b 0 \leq |r_1-r| < b 0≤∣r1−r∣<b。
但 b ∣ ( ∣ r 1 − r ∣ ) b\mid{(|r_1-r|)} b∣(∣r1−r∣),故有 ∣ r 1 − r ∣ = 0 |r_1-r| = 0 ∣r1−r∣=0。因此 r = r 1 r = r_1 r=r1, q = q 1 q = q_1 q=q1。
带余除法和正负号
对于整数 a , b a,b a,b,当 a a a的符号变化之后,可能余数就会发生变化
例如
- a = 3 , b = 5 a=3,b=5 a=3,b=5, 3 = 0 × 5 + 3 3=0\times{5}+3 3=0×5+3
- a = − 3 a=-3 a=−3, b = 5 b=5 b=5, − 3 = − 1 × 5 + 2 -3=-1\times{5}+2 −3=−1×5+2
#求整数商
>>> -3//5
-1
>>> 3//5
0
>>> -3//-5
0
#取模/求余数
>>> 3%5
3
>>> -3%5
2
>>> 3%-5
-2
>>> -3%-5
-3
余数和取模相关性质
-
若 a , b a,b a,b都为正整数,且 a < b a<b a<b,则 b = a × 0 + a b=a\times{0}+a b=a×0+a,即 b m o d a = a b\mod{a}=a bmoda=a
-
这个性质在辗转相除法的程序设计中很有用,可以简化代码
-
假设这时候求 g c d ( a , b ) gcd(a,b) gcd(a,b),程序可以这么设计
int gcd(int a, int b) { a = abs(a); b = abs(b); if (a % b == 0) { // a>=b的情况下才有可能 return b; } else { /* (1)a<b时 gcd(b, a); (2)a>b但a%b!=0 (2) gcd(b, a % b); 如果考虑本节的性质,a<b时a%b=a,那么情况(1)可以的gcd(b,a)=g(b,a%b),和情况(2)的式子相同了 所以上述两种情况(1)(2)合并 */ return gcd(b, a % b); } }
-
如果要计算一正一负,两个负数的最大公约数,也可以转换为两个正整数的最大公约数的计算,只需要将 a , b a,b a,b分被取绝对值再计算;事实上 g c d ( a , b ) gcd(a,b) gcd(a,b)= g c d ( − a , b ) gcd(-a,b) gcd(−a,b)= g c d ( a , − b ) gcd(a,-b) gcd(a,−b)= g c d ( − a , − b ) gcd(-a,-b) gcd(−a,−b);
例如 g c m ( 2 , 4 ) gcm(2,4) gcm(2,4)= g c m ( − 2 , 4 ) gcm(-2,4) gcm(−2,4)= 2 2 2
自然数可以表示为任意进制数
下述结论表明自然数可以表示成任意
q
(
>
1
)
q(>1)
q(>1)进制数.
设
q
q
q是大于1的整数,则任意自然数
n
n
n可表示为
n
=
c
m
q
m
+
⋯
+
c
1
q
+
c
0
,
n=c_{m}q^{m}+\cdots+c_{1}q+c_{0},
n=cmqm+⋯+c1q+c0,
其中
m
⩾
0
m\geqslant0
m⩾0,
0
⩽
c
i
<
q
0\leqslant c_{i}<q
0⩽ci<q,
0
⩽
i
⩽
m
0\leqslant i\leqslant m
0⩽i⩽m,
c
m
≠
0
c_{m}\neq0
cm=0.对于给定的
q
q
q,这种表示方法是惟一的.
上式称为**
n
n
n的
q
q
q进制表示**.
然而小数的情况要复杂一些,例如十进制的0.1无法位数被二进制数精确表达
利用带余除法做整数的进制转换
n n n= ( c m q m − k c m − 1 q m − 1 − k ⋯ c k ) q k (c_{m}q^{m-k}c_{m-1}q^{m-1-k}\cdots{c_{k}})q^{k} (cmqm−kcm−1qm−1−k⋯ck)qk+ ( c k − 1 r k − 1 c k − 2 r k − 2 . ⋯ c 0 ) (c_{k-1}r^{k-1}c_{k-2}r^{k-2}.\cdots{c_{0}}) (ck−1rk−1ck−2rk−2.⋯c0)
小数点移位
n / r k n/r^{k} n/rk= [ c m c m − 1 ⋯ c k ] . c k − 1 ⋯ c 0 [c_{m}c_{m-1}\cdots{c_{k}}].c_{k-1}\cdots c_{0} [cmcm−1⋯ck].ck−1⋯c0
将 q q q进制数化为10进制数
$ a_{n}a_{n-1}\cdots a_{1}a_{0}=a_{n}\times10{n}+a_{n-1}\times10{n-1}+\cdots+a_{1}\times10+a_{0}. $
其中
a
n
a_{n}
an,
a
n
−
1
a_{n-1}
an−1,…,
a
1
a_{1}
a1,
a
0
a_{0}
a0在0,1,2,…,9中取值(
a
n
≠
0
a_{n}\neq 0
an=0,
n
⩾
0
n\geqslant 0
n⩾0).
例如4376=4× 1 0 3 10^{3} 103+3× 1 0 2 10^{2} 102+7× 1 0 1 10^{1} 101+6.
将10进制数化为 q q q进制数
设 a a a为10进制数,用 q q q去除 a a a,余数就是右起第一位数.将商除以 q q q的余数,得到右起第二位数.
如此继续,直到商小于 q q q为止.
例
例如,运用带余除法,可将十进制数101分别表为2进制数和8进制数:
101=
2
6
+
2
5
+
2
2
+
1
=
(
1100101
)
2
2^{6}+2^{5}+2^{2}+1=(1100101)_{2}
26+25+22+1=(1100101)2,
101=
8
2
+
4
×
8
+
5
=
(
145
)
8
.
8^{2}+4\times8+5=(145)_{8}.
82+4×8+5=(145)8.
在十进制中,数字符号有10个:0,1,2,…,9.在二进制中,数字符号只有2个:0,1.在
q
q
q进制中,数字符号有
q
q
q个:0,1,2,…,
q
−
1
q-1
q−1.