数论基础@整除相关概念和性质@带余除法定理

abstract

数论(Number Theory)是数学中专门研究整数及其性质的学科。数论的历史可以追溯到古代,至今仍是数学中最富有魅力和活力的领域之一。

数论主要研究对象是整数、质数(prime numbers)以及它们之间的关系和规律。(小数不是数论讨论的重点,大多性质或定理描述的内容是关于整数)

由于其探讨的对象和问题往往与简单的算术现象紧密相关,数论有时被称为“高等算术”。

数论的主要内容

本文仅讨论最基础的初等数论知识,它们在计算机科学和程序设计方面有重要应用,非数学专业人员往往对这方面的知识比较欠缺

以前高中阶段,有些教材提供了数论基础章节,比如人教版选修

  1. 初等数论(Elementary Number Theory)

    • 研究基本的整数性质,如因数分解、最大公约数和最小公倍数、同余(congruences)、模运算(modular arithmetic)等。欧几里得算法和费马小定理都是初等数论中的基本工具。
    • 初等数论是数论的一个分支,主要研究整数的基本性质和基本运算,通常不借助于更高级的数学工具(如复分析或抽象代数)。尽管称为“初等”,初等数论中包含了许多深刻而有趣的理论,涉及整数的分解、同余关系、素数性质等内容。
  2. 代数数论(Algebraic Number Theory)

  3. 解析数论(Analytic Number Theory)

  4. 几何数论(Geometric Number Theory)

  5. 计算数论(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 ab),当且仅当存在整数 c c c 使得 b = a ⋅ c b = a \cdot c b=ac (1)

符号|整除号,整除号的左边是因数(称为整除数,在式(1)中充当除数),右边是被整除数,在式(1)中充当积;

因此整除号两边用含义直接表示为整除数|被整除数因数|倍数

a ∣ b a|b ab也可以读作: 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 ba。并称 b b b a a a约数(或因数) a a a b b b倍数。否则称 b b b 不能整除 a a a,记作 b ∤ a b \nmid a ba

  • 例如,7 | 105,105 是 7 的倍数; 7 ∤ 48 7\nmid 48 748,48 不是 7 的倍数;1、3、5、7、15、21、35、105 都是 105 的约数;1 和 11 是 11 的约数;等等。

注意

  • 0 不是任何整数的约数但 0 是任何整数的倍数(任何数乘以0都是0)。
    • (说明了倍数不一定比约数要小, b ∣ a b|a ba不揭示 a , b a,b a,b的大小关系),除非指定 a ≠ 0 a\neq{0} a=0,那么有 ∣ b ∣ ⩽ ∣ a ∣ |b|\leqslant|a| ba
  • 符号 b ∣ a b | a ba 本身包含了条件 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 ab,表示“ 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=ac,那么 a ∣ b a \mid b ab 成立。

a ∣ b a|b ab可以理解为

  • a a a来分 b b b,分完后每份都是 a a a
  • b b b平均分成 a a a份,每份都是整数

例如, 3 ∣ 6 3 \mid 6 36 表示3整除6,这个命题成立,因为存在整数2使得 6 = 3 ⋅ 2 6 = 3 \cdot 2 6=32。在这种表达中:

  • 被整除数 b b b(即6)。
  • 整除数 a a a(即3)。

被整除(Being Divisible)

被整除的概念是从整除的角度反过来看。例如,在“3 整除 6”或“ 3 ∣ 6 3 \mid 6 36”这个表达中,6被3整除。换句话说:

  • 如果 a ∣ b a \mid b ab,那么 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/bb除a,表示用 b b b a a a

整除的性质👺

  1. b ∣ a b | a ba,$ c | b$,则 c ∣ a c | a ca(传递性)
  2. c ∣ a , c ∣ b c | a, c | b ca,cb,则对任意整数 x , y x, y x,y(可以为负整数),必有 c ∣ ( a x + b y ) c | (ax + by) c(ax+by)(线性组合性质,同一个因数的不同倍数间的线性组合仍然是这个因数的倍数)
  3. b ∣ a , a ≠ 0 b | a, a \neq 0 ba,a=0,则 ∣ b ∣ ⩽ ∣ a ∣ |b| \leqslant |a| ba;若 b ∣ a b|a ba, ∣ a ∣ < ∣ b ∣ |a|<|b| a<b,则 ∣ a ∣ = a = 0 |a|=a=0 a=a=0
  4. b ∣ a , a ≠ 0 b | a, a \neq 0 ba,a=0,则 a b ∣ a \frac{a}{b} \mid a baa
  5. a , b ∈ Z + a,b\in\mathbb{Z_{+}} a,bZ+, a ∣ b a|b ab b ∣ a b|a ba,则 a = b a=b a=b
  6. a , m ∈ Z a,m\in\mathbb{Z} a,mZ, a ≠ 0 a\neq{0} a=0, a ∣ a m a|am aam
  7. a ∣ b a|b ab, m ∈ Z , m ≠ 0 m\in\mathbb{Z},m\neq{0} mZ,m=0,则 a m ∣ b m am|bm ambm
  8. a b = m ab=m ab=m, ( a , b , m ∈ Z , m ≠ 0 ) (a,b,m\in\mathbb{Z},m\neq{0}) (a,b,mZ,m=0),则 a ∣ m , b ∣ m a|m,b|m am,bm

它们都可以通过定义推导和验证

举例应用👺

求证:设 3 ∣ m , 7 ∣ m 3 \mid m, 7 \mid m 3m,7m,则 21 ∣ m 21 \mid m 21m

  • 这个命题的证明有一定的技巧性,需要配出来线性组合性质的系数来利用对应的整除性质进行证明

证明:

3 ∣ m 3 \mid m 3m,可写 m = 3 q m = 3q m=3q ( q ∈ Z ) (q\in\mathbb{Z}) (qZ)

由此及 7 ∣ m 7 \mid m 7m 7 ∣ 3 q 7 \mid 3q 73q。由 7 ∣ 7 q , 7 ∣ 3 q 7 \mid 7q, 7 \mid 3q 77q,73q 及线性组合性质可得 7 ∣ [ 7 q − 2 × ( 3 q ) ] 7 \mid [7q - 2 \times (3q)] 7[7q2×(3q)],即 7 ∣ q 7 \mid q 7q

因此可令 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 21m

类似地,若 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∣(3q2q),即 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 (q1q2qk)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) miS,(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} MS

又因为 M , S M,S M,S各自有 k k k个不同元素,所有 M = S M=S M=S;所有 q 1 ⋯ q k q_{1}\cdots{q_{k}} q1qk= m 1 ⋯ m k m_{1}\cdots{m_{k}} m1mk

由条件可知 ∏ 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 (q1q2qk)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=qk1n,,qk=q1n

  • 实际上 q i q k − i + 1 = n q_{i}q_{k-i+1}=n qiqki+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} q1q2qk=qkn×qk1n××q1n ⇒ ( q 1 q 2 ⋯ q k ) 2 = n k . \Rightarrow (q_1 q_2 \cdots q_k)^2 = n^k. (q1q2qk)2=nk.

补充

有些教材中的证明将 q i q k − i + 1 = n q_{i}q_{k-i+1}=n qiqki+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} jk1;如果 j < k − 1 j<k-1 j<k1,那么说明 q 2 q k − 1 > n q_{2}q_{k-1}>n q2qk1>n,而 n / q k − 1 ∈ S n/q_{k-1}\in{S} n/qk1S从而只能 a 1 q k − 1 = n a_{1}q_{k-1}=n a1qk1=n,而这与 q 1 a k = n q_{1}a_{k}=n q1ak=n矛盾,所以 j = k − 1 j=k-1 j=k1
    • 所以 q 2 q k − 1 = n q_{2}q_{k-1}=n q2qk1=n
  • i = 3 i=3 i=3
    • 因为 q 2 q k − 1 = n q_{2}q_{k-1}=n q2qk1=n, q 3 q j = n q_{3}q_{j}=n q3qj=n必有 j ⩽ k − 2 j\leqslant{k-2} jk2;
    • 如果 j < k − 2 j<k-2 j<k2,则 q 3 q k − 2 > n q_{3}q_{k-2}>n q3qk2>n, n / q k − 2 ∈ S n/q_{k-2}\in{S} n/qk2S,从而只能 q 1 q k − 2 = n q_{1}q_{k-2}=n q1qk2=n,或者 q 2 q k − 2 = n q_{2}q_{k-2}=n q2qk2=n;再由前面的结论,这两个情况都不可能,所以 j = k − 2 j=k-2 j=k2
    • 随意 q 3 q k − 2 = n q_{3}q_{k-2}=n q3qk2=n
  • …以此类推, q i q k − i + 1 = n q_{i}q_{k-i+1}=n qiqki+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+2i=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+11)/2= k k k,说明第 k + 1 k+1 k+1个元素是中间元素(从正数倒数都是第 k + 1 k+1 k+1个)

有意思的整除问题或性质

  • 三个连续整数的和是3的倍数

    • a ∈ Z a\in{\mathbb{Z}} aZ,是三个连续整数中最小的数,则三数之和为 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)(a2ab+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} nZ,则 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 n1,n+2是3的倍数
    • r = 2 r=2 r=2时, n − 2 , n + 1 n-2,n+1 n2,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 n2,n1,n中也至少有一个是3的倍数
      • 因此,任意3个连续整数中有且只有一个3的倍数
  • n ∈ Z + n\in\mathbb{Z_{+}} nZ+,则 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_+} SZ+那么可以得出 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)+(n1))= 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)+(n1)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=(n1)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) (0r<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=abq也是一个整数,所以 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 qba<(q+1)b=qb+b,可得 0 ⩽ a − q b < b 0\leqslant{a-qb}<b 0aqb<b
r = a − q b r = a - qb r=aqb,因为 q q q存在,所以 r r r存在,则 0 ≤ r < b 0 \leq r < b 0r<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 ba,则 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} ba,则 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<aqb<b;
    • r = a − q b r=a-qb r=aqb,则 0 < r < b 0<r<b 0<r<b,由于 q q q存在,所以 r = a − q b r=a-qb r=aqb也存在
  • 综上,存在 q , r q,r q,r使得 a = b q + r a=bq+r a=bq+r,且 0 ⩽ r < b 0\leqslant{r}<b 0r<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(qq1)=r1r

b ∣ q − q 1 ∣ = ∣ r 1 − r ∣ b|q-q_1| = |r_1-r| bqq1=r1r

因为 r r r r 1 r_1 r1 都是小于 b b b 的非负整数,所以 0 ≤ ∣ r 1 − r ∣ < b 0 \leq |r_1-r| < b 0r1r<b

b ∣ ( ∣ r 1 − r ∣ ) b\mid{(|r_1-r|)} b(r1r),故有 ∣ r 1 − r ∣ = 0 |r_1-r| = 0 r1r=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 m0 0 ⩽ c i < q 0\leqslant c_{i}<q 0ci<q 0 ⩽ i ⩽ m 0\leqslant i\leqslant m 0im 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} (cmqmkcm1qm1kck)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}}) (ck1rk1ck2rk2.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} [cmcm1ck].ck1c0

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} an1,…, 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 n0).

例如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 q1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cxxu1375

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值