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

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

文章目录

  • 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. Linux知识点复习
  2. openssl 生成证书_使用证书和私钥导出P12格式个人证书!
  3. Linux C学习--getline()函数
  4. hive遍历_从Hive中的stored as file_foramt看hive调优
  5. 《软件需求分析(第二版)》第 12 章——需求确认 重点部分总结
  6. oracle习题-emp表查询练习
  7. AI与中国未来就业白皮书发布:70%职业受冲击,江浙机器换人大潮汹涌
  8. 基于Nginx的Wesocket负载均衡
  9. mysql 删除数据表大小没变_为什么数据删除了,表文件大小不变?
  10. 在php中插入图片,php中怎么插入图片
  11. java filter 注解_注解方式的过滤器(Filter)不能过滤Servlet(注解方式)的问题...
  12. linux 添加软连接、查看软连接、增加文件的执行权限
  13. 云智能,重新定义数字化时代云的未来
  14. 怎样写工科研究生论文
  15. 常见的IC封装形式大全
  16. java reader 组合_Java IText 拼接合并PDF的三种方法
  17. Arduino驱动MAX30102心率血氧传感器模块
  18. 苹果系统连接服务器打印机,Mac系统怎么连接打印机
  19. mysql表的拆分,外键的添加,删除,级联操作
  20. MBA面试系列之----中文面试宝典(一)

热门文章

  1. 基于Python的工厂模式学习总结
  2. html5手机密码修改,js+html5实现手机九宫格密码解锁功能
  3. 2013年10月16Aspx源码发布详情
  4. 【数字概念】阿里苏宁联合:一种商业文明的倒退 63.65 万亿 10.4 万亿 1.68 万亿...
  5. 抗DDOS攻击哪家强?是堵还是疏?
  6. Gutenberg(古腾堡): WordPress全新核心编辑器插件
  7. 物联网知识:工业物联网关具备那些优秀的功能及特点
  8. 解读U盘存储结构原理
  9. boundRect.tl和boundRect.br什么意思
  10. 如何绘制一个类甘特图 (附源码)