本文属于「数论」系列文章之一。这一系列着重于数论算法的学习和应用。由于内容随时可能发生更新变动,欢迎关注和收藏数论算法系列文章汇总目录一文以作备忘。此外,在本系列学习文章中,为了透彻理解数论知识,本人参考了诸多博客、教程、文档、书籍等资料。以下是本文的不完全参考目录,在后续学习中还会逐渐补充:

  • 数论算法,姜建国、臧明相编著,西安电子科技大学出版社

文章目录

  • 1. 带余除法
    • 1.1 带余除法定义及扩展
    • 1.2 带余除法的应用

初等数论的证明中最重要、最基本、最常用的工具就是带余除法(或称带余数除法除法算法欧几里得除法),它承前(整除)启后(模运算同余)。

1. 带余除法

1.1 带余除法定义及扩展

定理1.1.3 设 a,ba, ba,b 是两个给定的整数,b≠0b \ne 0b​=0 ,则一定存在唯一的一对整数 q,rq, rq,r 满足 a=qb+r,0≤r<∣b∣a = qb + r, \quad 0 \le r < |b|a=qb+r,0≤r<∣b∣

注意,此处约定余数 rrr 为非负整数,于是 −7=−3⋅3+2-7 = -3 \cdot 3 + 2−7=−3⋅3+2(即 −7/3=−3-7 / 3 = -3−7/3=−3 ,除法向下取整)和 −7=−2⋅3−1-7 = -2 \cdot 3- 1−7=−2⋅3−1 (即 −7/3=−2-7 / 3 = -2−7/3=−2 ,除法向零取整/截断小数,即C/C++的整型除法)之间,我们取前者为准。

一般情况下,我们还约定 b>0b > 0b>0 ,则上式可表示为 a=qb+r,0≤r<b(1.1.1)\tag{1.1.1} a = qb + r, \quad 0\le r< ba=qb+r,0≤r<b(1.1.1)

证明 先证明存在性。当 b∣ab \mid ab∣a 时,可取 q=a/b,r=0q = a/ b, r = 0q=a/b,r=0 。当 b∤ab \nmid ab∤a 时,考虑集合 T={kb∣k=0,±1,±2,…}={…,−3b,−2b,−b,0,b,2b,3b,…}T = \{ kb \mid k = 0, \pm 1, \pm 2, \dots \} = \{ \dots, -3b, -2b, -b, 0, b, 2b, 3b, \dots \}T={kb∣k=0,±1,±2,…}={…,−3b,−2b,−b,0,b,2b,3b,…}

将实数分为长度为 bbb 的区间,aaa 必落在某区间内,即存在整数 qqq ,使得 qb≤a<(q+1)bqb \le a \lt (q + 1) bqb≤a<(q+1)b

令 r=a−bq≥0r = a - bq \ge 0r=a−bq≥0 ,则有 a=qb+r,0≤r<ba = qb + r, \quad 0\le r \lt ba=qb+r,0≤r<b

再证明唯一性。设另有两整数 q1,r1q_1, r_1q1​,r1​ 也满足式 (1.1.1)(1.1.1)(1.1.1) ,即 a=q1b+r1,0≤r1<ba = q_1 b + r_1, \quad 0 \le r_1 \lt ba=q1​b+r1​,0≤r1​<b

那么必有 b(q−q1)=−(r−r1)b (q - q_1 ) = -(r - r_1)b(q−q1​)=−(r−r1​)

当 q≠q1q \ne q_1q​=q1​ 时,有 ∣b(q−q1)∣≥b,∣−(r−r1)∣<b|\ b(q - q_1)\ | \ge b,\ |-(r - r_1)\ | < b∣ b(q−q1​) ∣≥b, ∣−(r−r1​) ∣<b

矛盾,故必有 q=q1,r=r1q = q_1, r = r_1q=q1​,r=r1​ 。

推论 设整数 a,b,ra, b, ra,b,r 满足式 (1.1.1)(1.1.1)(1.1.1) 中给出的关系,则 b∣ab \mid ab∣a 的充要条件是 r=0r = 0r=0 。
证明 由整除的定义1.1.1和定理1.3的结论,即知推论成立。

现在我们由整除扩展到了带余除法,不过带余除法还可以进一步扩展为更一般的方式。

定理1.1.4 设 a,ba, ba,b 是两个给定的整数,b≠0b \ne 0b​=0 ,则对任意整数 ccc ,一定存在唯一的一对整数 q,rq, rq,r ,满足 a=qb+r,c≤r<∣b∣+c(1.1.2)\tag{1.1.2}a = qb + r, \quad c\le r \lt |b| + ca=qb+r,c≤r<∣b∣+c(1.1.2)
证明 类似定理1.1.3,先证存在性,再证唯一性。证明存在性时,只要将区间设为 T={kb+c∣k=0,±1,±2,…}T = \{ kb + c \mid k = 0, \pm 1, \pm 2, \dots \}T={kb+c∣k=0,±1,±2,…} 即可。

推论 设整数 a,b,ra, b, ra,b,r 满足式 (1.1.2)(1.1.2)(1.1.2) 中给出的关系,则 b∣ab\mid ab∣a 的充要条件是 b∣rb\mid rb∣r 。

由上述带余除法的定义及其扩展,可以给出如下定义。

定义1.1.3 设 a=qb+r(0≤r<b)a = qb + r(0\le r < b)a=qb+r(0≤r<b) ,则称 qqq 为 aaa 被 bbb 除所得的不完全商,称 rrr 为 aaa 被 bbb 除所得的非负余数,记为 r=(a)br = (a)_br=(a)b​ 。
推论 b∣ab\mid ab∣a 的充要条件是 aaa 被 bbb 除所得的余数 r=0r = 0r=0 。

定义1.1.3中要求余数 rrr 满足 0≤r<b0 \le r < b0≤r<b ,而实际问题中可能需要突破此限制。故关于常见的余数范围,有以下分类和命名:
(1)最小非负余数:c=0,0≤r<bc = 0, 0\le r< bc=0,0≤r<b
(2)最小正余数:c=1,1≤r≤bc = 1, 1\le r \le bc=1,1≤r≤b
(3)最大非正余数:c=−b+1,−b+1≤r≤0c = -b + 1, -b + 1 \le r \le 0c=−b+1,−b+1≤r≤0
(4)最大负余数:c=−b,b≤r<0c = -b, b \le r < 0c=−b,b≤r<0
(5)最小绝对余数:−b2≤r<b2-\dfrac{b}{2} \le r < \dfrac{b}{2}−2b​≤r<2b​ 或 −b2<r≤b2-\dfrac{b}{2}< r\le \dfrac{b}{2}−2b​<r≤2b​
一般情况下,当 a=qb+ra = qb + ra=qb+r 且选 0≤r<b0 \le r < b0≤r<b 时,有 q=⌊ab⌋,r=a−b⌊ab⌋q = \lfloor \dfrac{a}{b}\rfloor,\ r = a - b\lfloor \dfrac{a}{b}\rfloorq=⌊ba​⌋, r=a−b⌊ba​⌋ 。其中符号 ⌊x⌋\lfloor x\rfloor⌊x⌋ 称为下整数函数,即针对实数 xxx ,⌊x⌋\lfloor x\rfloor⌊x⌋ 的值为不大于 xxx 的最大整数(详见2.2节)。例如 ⌊3.1⌋=⌊3.5⌋=⌊3.9⌋=3,⌊−3.1⌋=⌊−3.5⌋=⌊−3.9⌋=−4\lfloor 3.1\rfloor = \lfloor 3.5\rfloor = \lfloor 3.9 \rfloor = 3,\ \lfloor -3.1 \rfloor = \lfloor -3.5 \rfloor = \lfloor -3.9 \rfloor = -4⌊3.1⌋=⌊3.5⌋=⌊3.9⌋=3, ⌊−3.1⌋=⌊−3.5⌋=⌊−3.9⌋=−4 。


1.2 带余除法的应用

【例1】设 a=100,b=30a = 100, b = 30a=100,b=30 ,当 ccc 分别为 10,35,−5010, 35, -5010,35,−50 时,写出 a,b,ca, b, ca,b,c 三者如式 (1.1.2)(1.1.2)(1.1.2) 表示的关系。
解:当 c=10c = 10c=10 时,有 10≤r<4010 \le r < 4010≤r<40 ,从而有 100=3⋅30+10100 = 3 \cdot 30 + 10100=3⋅30+10 。
当 c=35c = 35c=35 时,有 35≤r<6535 \le r < 6535≤r<65 ,从而有 100=2⋅30+40100 = 2 \cdot 30 + 40100=2⋅30+40 。
当 c=−50c = -50c=−50 时,有 −50≤r<−20-50 \le r < -20−50≤r<−20 ,从而有 100=5⋅30+(−50)100 = 5 \cdot 30 + (-50)100=5⋅30+(−50) 。

由定理1.1.4的推论可知,当 a=qb+ra = qb + ra=qb+r 时,b∣ab\mid ab∣a 的充要条件是 b∣rb\mid rb∣r ,故当 rrr 满足 0≤r<b0 \le r < b0≤r<b 时,就有 b∣r⇔r=0b \mid r \Lrarr r = 0b∣r⇔r=0 ,即定理1.1.3的推论结果。

定理1.1.4的意义在于,当判断 bbb 能否整除 aaa 时,可以化简判断过程。即利用减法(避免做除法运算)就可以达到快速判断的目的,尤其是提高心算的速度。

【例2】判断 777 能否整除 123451234512345 。
解:令 a=12345,b=7a = 12345, b = 7a=12345,b=7 ,则可看出先选 q1=1000q_1 = 1000q1​=1000 ,即得 r1=5345r_1 = 5345r1​=5345 。由定理1.1.4的推论可知,7∣123457 \mid 123457∣12345 的充要条件是 7∣53457\mid 53457∣5345 。
以此类推,可选 q2=700q_2 = 700q2​=700 ,得 r2=445r_2 = 445r2​=445 ,再选 q3=60q_3 = 60q3​=60 ,得 r3=25r_3 = 25r3​=25 。最后由 r3r_3r3​ 可知,7∤123457 \nmid 123457∤12345 。

【数论】第1章 整数的可除性 第1节 整除概念与带余除法(3) 带余除法相关推荐

  1. 【数论】第1章 整数的可除性 第1节 整除概念与带余除法(1) 整除及其性质

    本文属于「数论」系列文章之一.这一系列着重于数论算法的学习和应用.由于内容随时可能发生更新变动,欢迎关注和收藏数论算法系列文章汇总目录一文以作备忘.此外,在本系列学习文章中,为了透彻理解数论知识,本人 ...

  2. 【数论】第1章 整数的可除性 第3节 最大公因数与辗转相除法(1) 最大公因数及其性质

    本文属于「数论」系列文章之一.这一系列着重于数论算法的学习和应用.由于内容随时可能发生更新变动,欢迎关注和收藏数论算法系列文章汇总目录一文以作备忘.此外,在本系列学习文章中,为了透彻理解数论知识,本人 ...

  3. 【数论】第1章 整数的可除性 第2节 整数的表示

    本文属于「数论」系列文章之一.这一系列着重于数论算法的学习和应用.由于内容随时可能发生更新变动,欢迎关注和收藏数论算法系列文章汇总目录一文以作备忘.此外,在本系列学习文章中,为了透彻理解数论知识,本人 ...

  4. 【数论】第1章 整数的可除性(1) 整除概念与带余除法(2) 素数

    本文属于「数论」系列文章之一.这一系列着重于数论算法的学习和应用.由于内容随时可能发生更新变动,欢迎关注和收藏数论算法系列文章汇总目录一文以作备忘.此外,在本系列学习文章中,为了透彻理解数论知识,本人 ...

  5. 设计的萌芽阶段_第一章 设计的萌芽阶段 第一节 设计概念的产生

    第一节 设计概念的产生 在设计概念的产生过程中,劳动起着决定性的作用.劳动创造了人,而人类为了自身的生存就必须与自然界做斗争.人类最初只会用天然的石块或棍棒作为工具,以后渐渐学会了拣选石块.打制石器, ...

  6. 《Reids 设计与实现》第四章 整数集合和压缩列表

    <Reids 设计与实现>第四章 整数集合和压缩列表 文章目录 <Reids 设计与实现>第四章 整数集合和压缩列表 一.整数集合 1.简介 2.整数集合的实现 3.升级 4. ...

  7. 第1章 整数 |《初等数论及其应用》

    数和序列 良序性质 每个非空的正整数集合都有一个最小元 所有整数的集合不是良序的. 有理数 可以被写为整数的比的数的集合(若存在整数p,q ≠ 0,使得r = p / q,则称实数r为有理数) 代数数 ...

  8. 【重识云原生】第六章容器6.1.7.2节——cgroups原理剖析

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

  9. 【重识云原生】第六章容器6.4.2.3节——Pod使用(下)

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

最新文章

  1. 【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
  2. 【分割模型解读】感受野与分辨率的控制术—空洞卷积
  3. ubuntu16 redis5.0以前版本集群部署示例
  4. Django与Ajax
  5. C#LeetCode刷题-Shell
  6. 福州三中 计算机竞赛,重磅快讯 | 刚刚,信息学奥赛世界金牌得主钟子谦凯旋!...
  7. 2019 年备受争议的 Facebook 能否走出去年的阴影?| 畅言
  8. 5个性能强悍的黑科技APP,请低调收藏,高调使用!
  9. matlab命令及海洋作图
  10. windows 覆盖图标实现
  11. Android WebView开发(三):WebView性能优化
  12. 【软件测试基础理论知识】1.1.常见的软件开发模型之———瀑布模型、原型模型、快速原型模型
  13. c226打印机驱动安装_打印机驱动安装失败怎么办 打印机驱动安装方法【步骤详解】...
  14. 九宫格拼图 | 8Puzzle | C/C++实现
  15. 手机网速正常电脑很慢_路由器WiFi速度正常,但电脑和手机上网速度慢怎么办?...
  16. gif动图怎么制作更简单,手把手教你在线gif制作
  17. 【Hadoop】单机、伪分布式、完全分布式集群搭建
  18. Computer Transformation UVA - 1647
  19. python在线编程练习_有哪些在线编程练习网站?
  20. SQL Server 2008 序列号

热门文章

  1. 央视新闻:总产值达6890亿元!地理信息产业成为我国数字经济发展新引擎
  2. Windows 取证之注册表
  3. linux下运行tim,linux 运行QQ /Tim(超简单)
  4. 广联达综合面(测试类)
  5. 更改免提使其无操作加audio_policy_conf配置
  6. android语音播报
  7. jsp旅行社管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  8. 速度6倍于4G网络 诺基亚完成5G网络测试
  9. secureCRT 使用 rz 命令上传大文件失败出现乱码
  10. 如来十三掌的writeup