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中为feedparser设置超时时间避免堵塞
Sep 28 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
python实现XML解析的方法解析
Nov 16 Python
python扫描线填充算法详解
Feb 19 Python
Django用户身份验证完成示例代码
Apr 03 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
Python使用configparser读取ini配置文件
May 25 Python
python 高阶函数简单介绍
Feb 19 Python
python实现杨辉三角的几种方法代码实例
Mar 02 Python
opencv 分类白天与夜景视频的方法
Jun 05 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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与数据库代码开发规范
2013/08/08 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
PHP文件上传类实例详解
2016/04/08 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
MSN消息提示类
2006/09/05 Javascript
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
js+xml生成级联下拉框代码
2012/07/24 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
简单的分页代码js实现
2016/05/17 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
python with statement 进行文件操作指南
2014/08/22 Python
Python上下文管理器和with块详解
2017/09/09 Python
Python实现Restful API的例子
2019/08/31 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
Python range与enumerate函数区别解析
2020/02/28 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
2014年实习生工作总结
2014/11/27 职场文书
2014年教研工作总结
2014/12/06 职场文书
运动会加油稿50字
2015/07/21 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书