这是很长时间以来断断续续的学习了鸽巢原理之后的第一次出手解决一个实际的问题,很漂亮。

这是一道教科书中的习题,题目的原文是:证明两个有理数相除,那么一定存在循环小结。其实在小学里的时候,这个念头就在我的脑子里闪过,当然只是闪了一下而已。也许是缘份吧,这次就来证明之。

设两个有理数A,B;并且A/B,不失一般性还可以约定A大于B。我们可以令A/B = B * I1 + R1,其中I1是A/B后的商的整数部分,而R1则是余数部分。由于没有除尽,A/B的除法运算还会继续下去。根据除法的计算方法,第二次应该是R1 /B。同理,这次也可以写成R1/B = B * I2 +R2,其中I2是R1/B相除之后的商的整数部分,而R2则是余数部分。由于还是没有除尽,那么接着是计算R2/B。于是除法会这么一直持续下去,并且 每除一次都会得到一个商的整数部分和余数部分。

假设这样的相除连续进行了N次,并且N是大于A的最小的整数。于是我们得到N个I和N个R。显然这N个余数都是小于A的,同时R的个数又是大于A的,因此根据鸽巢原理,这N个余数中必定存在2个余数是相同的。令这2个相同的余数是Ri和Rk。

那么第Ri+1个余数是Ri/B得到的,而第Rk+1个余数是Rk/B得到的,所以当Ri等于Rk的时候,那么Ri+1一定等于Rk+1。同理我们可以得 到Ri+2等于Rk+2,Ri+3等于Rk+3...。当这个序列增加到第N的时候,即Ri+1,Ri+2,...,Ri+n时,Ri+n就又会和 Ri+1,Ri+2,...,Ri+n-1中的一个余数相等,于是我们又可以找到这样的序列。显然这样的序列每次增加到N个的时候就会和前面的序列中的一 个余数相等,从使得当前序列中的余数和前一个序列中的余数依次相等。于是就出现了循环小结。证毕。

循环小结的存在必然性的证明相关推荐

  1. 【VBA(一):For循环】【Excel中宏的使用+手工书写VBA代码+使用For循环+小结及练习】

    文章目录 Excel中宏的使用 录制宏 优缺点 录制相对引用的宏 案例 手工书写VBA代码 新建模块 使用For循环 案例 小结及练习 定义 宏 VBA(ALT+F11) 相关概念 定位 制作工资条 ...

  2. 我的晋升答辩小结:测试拿什么证明自己的能力?

    很久没有做过个人的工作和年终总结,已然想不起上一次的总结是什么时候了,近期晋升答辩,给了自己当头一棒,没有总结思考,你会发现,一切都只是为了工作而工作. 所以,小叶在此提醒大家,再忙也不要忘记做总结. ...

  3. 前端学习(707):循环小结

  4. 零知识证明实践教程,第三部分

    本文是零知识证明简单实践教程的第三部分, 第一部分见:零知识证明第一部分, 第二部分见:零知识证明第二部分. 下面这个图片是我们在第二部分所使用的merkle树来构造prover的承诺.同时我们也提出 ...

  5. C语言程序流程设计之循环【程序流程设计】(13)

    循环 循环三要素 死循环 可控循环 可控循环的三要素 while "当"型循环 语法结构及流程 解析 代码演示 do while"直到"型循环 语法及流程 解析 ...

  6. linux命令行使用for循环,小弟我使用过的Linux命令之for - Bash中的For循环

    我使用过的Linux命令之for - Bash中的For循环 我使用过的Linux命令之for - Bash中的For循环 本文链接:http://codingstandards.iteye.com/ ...

  7. 算术基本定理证明用计算机,良序原理:算术基本定理的证明

    相关: [第一数学归纳法 vs 第二数学归纳法 vs 良序定理](http://www.cnblogs.com/liqiuhao/p/7799269.html) 首先不要把良序原理(Well-orde ...

  8. JavaScript 04 流程控制(循环)

    目录 流程控制(循环)思维导图 1 - 流程控制 1.1 流程控制概念 1.2 顺序流程控制 1.3 分支流程控制 1.4 三元表达式 1.5 switch分支流程控制 附上流程控制思维导图: 2 - ...

  9. JavaScript之for循环、while循环 continue、break与代码规范

    文章目录 1 - 循环 1.1 for循环 1.2 双重for循环 1.3 while循环 1.4 do-while循环 1.5 continue.break 2 - 代码规范 2.1 标识符命名规范 ...

最新文章

  1. LeetCode Weekly Contest 27
  2. React如何使用 Ant Design(简单使用)
  3. php 集合安装,centos7安装php5.6报错集合
  4. Tiny6410之重定位代码到SDRAM
  5. python中test_在python中生成py.test测试
  6. linux 命令如何输入,Linux 命令行输入
  7. Delphi控件开发浅入深出(三)
  8. 传百度最高决策层Estaff成员王路将离职,官方暂未回应...
  9. [转]Pytest 基础教程
  10. thymeleaf 中 通用的分页方法
  11. Java多线程进阶(三六)—— J.U.C之collections框架:DelayQueue
  12. Python : Arrow、Pyarrow库、以及与Julia互读
  13. 学生选课管理系统 选课信息管理系统管理端
  14. 你要如何衡量你的人生
  15. jconsole是否可以在生产环境使用_使用JCONSOLE远程监控JVM
  16. STAR原则是什么?
  17. 机器学习与控制:ADMM的ODE模型与基于Lyapunov的收敛分析
  18. 转载:凯明事件背后:TD的煎熬
  19. 利用Thumbnilator对图片加文字水印
  20. Linq中Skip和Take用法(TakeWhile和SkipWhile用法)

热门文章

  1. html 音标显示乱码,网页显示音标/拼音显示乱码的解决办法(.net)
  2. appium示例代码python_appium+Python 脚本编写
  3. python怎么打开excel文件并处理_Python利用openpyxl处理Excel文件(Excel文件基本操作)...
  4. “支付功能”怎么测试?
  5. java输出矩形_java输出长方形求解答
  6. c语言必考100题解析,C语言必考100题
  7. 小程序api 分享scene_抛弃微信小程序API的嵌套回调吧!
  8. java email怎么设置端口号_java mail 设置参数
  9. 2018南华大学计算机学院,南华大学2019年排名第214位 较2018年下降32名
  10. linux su命令位置,Linux命令大全su详解