美文网首页
中国剩余定理

中国剩余定理

作者: 范一婷 | 来源:发表于2016-05-06 13:43 被阅读92次

昨天下午同事给我出了一到题目:

一筐鸡蛋,1个1个拿,拿完;2个2个拿,剩余1个;3个3个拿,拿完;4个4个拿,剩余1个;5个5个拿,剩余1个;6个6个拿,剩余3个;7个7个拿,拿完;8个8个拿,剩余1个;9个9拿,拿完。请问鸡蛋最少多少个?

最简答的做法就是循环,代码如下

x=range(1,1000)
s=filter(lambda x:x %2==1 and x%3==0 
            and x%4==1 and x%5==1 
            and x%6==3 and x%7==0 
            and x%9==0 and  x%5==1 
            and x%8==1 x%9==1,x)
print s

这样写,憋说你学过编程!!

好了,其实这是一种很经典的题目,中国剩余定理,不了解的可以看一下基础数论中欧几里得算法,扩展欧几里得算法

# -*- coding: utf-8 -*-
__author__='fanyiting'
import datetime

#求乘法逆元
def ext_euclid(a,b):
    if not b:
        return a,1,0
    else:
        g,x,y=ext_euclid(b,a%b)
        return g,y,x-y*(a/b)

#中国剩余定理,要求m两两互素
def cal(t,m,a):
    starttime=datetime.datetime.now()
    M=1
    result=0
    for i in m:
        M=M*i
    for i in range(t):
        Mi=M/m[i]
        G,X,Y=ext_euclid(Mi,m[i])
        result=(result+Mi*X*a[i])%M
    stoptime=datetime.datetime.now()
    print 'run time  {}'.format((stoptime-starttime))
    return result

sum=cal(4,[5,7,8,9],[1,0,1,0])  
print sum

相关文章

  • 中国剩余定理

    昨天下午同事给我出了一到题目: 一筐鸡蛋,1个1个拿,拿完;2个2个拿,剩余1个;3个3个拿,拿完;4个4个拿,剩...

  • 中国剩余定理

    中国剩余定理给出了求解模数两两互质的线性同余方程组的一个特解。设是两两互质的整数,,,是线性同余方程的一个解。对于...

  • 中国剩余定理

    用中国剩余定理求解同于式组 / x≡b1 (mod m1)| x≡b2 (mod m2)| x≡b3 (mod m...

  • 中国剩余定理

    下表由本人制作,与上表字符含义不同,切勿混淆

  • 中国剩余定理

    表述 设为互素的整数,b与c为任意整数。那么同余式组:恰好有一个解。 证明 等价于,带入得。根据线性同余式定理,上...

  • CRT中国剩余定理

    特别版(除数两两互质) 普通版(任意情况)两两合并变成互质情况。

  • 中国剩余定理(CRT)

    在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之...

  • Python解中国剩余定理(孙子定理)

    中国剩余定理(Chinese Remainder Theorem,CRT)又称孙子定理,是数论中的一个定理。古典数...

  • 产品经理数学课(3)

    关键词:剩余,同余定理,数论,hash 参考:杨迎球,中国剩余定理与同余式组,[D]安顺学院数学与计算机科学系,2...

  • 古老的数学剩余定理,汪氏解法。

    从2013年开始书面上看到几排文字介绍中国数学家跟剩余定理的故事开始。我认定自己也会在剩余定理的研究里越走越远,个...

网友评论

      本文标题:中国剩余定理

      本文链接:https://www.haomeiwen.com/subject/vvhjrttx.html