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

yipeiwu_com6年前Python基础

本文实例讲述了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函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

python 用所有标点符号分隔句子的示例

问题 给出一段话,由短句组成,短句之间可能被任意标点符号隔开。想要提取所有的短句。 解决 使用 re.split 函数,用正则式匹配的方法,一次性分隔所有短句。 import re...

用Python实现随机森林算法的示例

拥有高方差使得决策树(secision tress)在处理特定训练数据集时其结果显得相对脆弱。bagging(bootstrap aggregating 的缩写)算法从训练数据的样本中建...

简单介绍Python的Django框架的dj-scaffold项目

由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑。为此我又新创建了一个开源项目dj-scaffold(django的脚...

python+pandas分析nginx日志的实例

python+pandas分析nginx日志的实例

需求 通过分析nginx访问日志,获取每个接口响应时间最大值、最小值、平均值及访问量。 实现原理 将nginx日志uriuriupstream_response_time字段存放到pan...

mac安装pytorch及系统的numpy更新方法

安装Pytorch 在pytorch官网上选择相应选项,我的是OS X, pip, python2.7, none CUDA。 (之所以用python2.7只是觉得现在还有好多代码用2....