Python实现的中国剩余定理算法示例


Posted in Python onAugust 05, 2017

本文实例讲述了Python实现的中国剩余定理算法。分享给大家供大家参考,具体如下:

中国剩余定理(Chinese Remainder Theorem-CRT):又称孙子定理,是数论中的一个定理。即如果一个人知道了一个数n被多个整数相除得到的余数,当这些除数两两互质的情况下,这个人就可以唯一的确定被这些个整数乘积除n所得的余数。

维基百科上wiki:The Chinese remainder theorem is a theorem of number theory, which states that, if one knows the remainders of the division of an integer n by several integers, then one can determine uniquely the remainder of the division of n by the product of these integers, under the condition that the divisors are pairwise coprime.

有一数n,被2除余1,被3除余2,被5除余4,被6除余5,正好被7整除,求该数n.

分析:n被2除余1,说明概述最小为1,之后该条件一直满足,所以需要加上的数一定是2的倍数。被3除余2,即(1+2*i)%3=2,其中i为正整数。之后该条件一直满足,所以需要加上的数一定是3的倍数,又因为前一个条件的限制,所以是2和3的最小公倍数的整数倍。一次类推,知道找到被7整除的数。

n=1
while(n%3 != 2):
  n += 2
while(n%5 != 4):
  n += 6
while(n%6 != 5):
  n += 30
while(n%7 != 0):
  n += 30

最终结果为119。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python yield 小结和实例
Apr 25 Python
python类和继承用法实例
Jul 07 Python
Python编写一个优美的下载器
Apr 15 Python
Python中的CSV文件使用"with"语句的方式详解
Oct 16 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
python global关键字的用法详解
Sep 05 Python
Python Tkinter模块 GUI 可视化实例
Nov 20 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 Python
python3.6使用SMTP协议发送邮件
May 20 Python
Python模块常用四种安装方式
Oct 20 Python
Python 数据可视化之Bokeh详解
Nov 02 Python
python爬虫_自动获取seebug的poc实例
Aug 05 #Python
python中的break、continue、exit()、pass全面解析
Aug 05 #Python
Python基于递归算法实现的走迷宫问题
Aug 04 #Python
Python实现的科学计算器功能示例
Aug 04 #Python
Python中用字符串调用函数或方法示例代码
Aug 04 #Python
Python编程实现的图片识别功能示例
Aug 03 #Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 #Python
You might like
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
composer.lock文件的作用
2016/02/03 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
javascript中window.event事件用法详解
2012/12/11 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
在Python程序中实现分布式进程的教程
2015/04/28 Python
Python 3 判断2个字典相同
2019/08/06 Python
python3.6编写的单元测试示例
2019/08/17 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
Python实现简单的2048小游戏
2021/03/01 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
建筑专业毕业生推荐信
2013/11/21 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
活动志愿者自荐信
2014/01/27 职场文书
顶撞老师检讨书
2014/02/07 职场文书
小学运动会班级口号
2014/06/09 职场文书
四风对照检查材料范文
2014/09/27 职场文书
材料采购员岗位职责
2015/04/03 职场文书
统招统分证明
2015/06/23 职场文书
Java 多线程协作作业之信号同步
2022/05/11 Java/Android