中国剩余定理

来源:互联网 发布:java split . 编辑:程序博客网 时间:2024/05/01 09:24

 
 
    在中国古代劳动人民中,长期流传着“隔墙算”、“剪管术”、“秦王暗点兵”等数学游戏。有一首“孙子歌”,甚至远渡重洋,输入日本:
“三人同行七十稀,五树梅花廿一枝,
七子团圆正半月,除百零五便得知。”
这些饶有趣味的数学游戏,以各种不同形式,介绍世界闻名的“孙子问题”的解法,通俗地反映了中国古代数学一项卓越的成就。“孙子问题”在现代数论中是一个一次同余问题,它最早出现在中国公元四世纪的数学著作《孙子算经》中。《孙子算经》卷下“物不知数”题说:有物不知其数,三个一数余二,五个一数余三,七个一数又余二,问该物总数几何?显然,这相当于求不定方程组
N=3x+2,N=5y+3,N=7z+2
的正整数解N,或用现代数论符号表示,等价干解下列的一次同余组。
《孙子算经》所给答案是N=23。由于孙子问题数据比较简单,这个答数通过试算也可以得到。但是《孙子算经》并不是这样做的。“物不知数”题的术文指出解题的方法多三三数之,取数七十,与余数二相乘;五五数之,取数二十一,与余数三相乘;七七数之,取数十五,与余数二相乘。将诸乘积相加,然后减去一百零五的倍数。列成算式就是:
N=70×2+21×3+15×2-2×105。
这里105是模数3、5、7的最小公倍数,容易看出,《孙子算经》给出的是符合条件的最小正整数。对于一般余数的情形,《孙子算经》术文指出,只要把上述算法中的余数2、3、2分别换成新的余数就行了。以R1、R2、R3表示这些余数,那么《孙子算经》相当于给出公式
N=70×R1+21×R2+15×R3-P×105(p是整数)。
 
中国剩余定理”算理及其应用:
为什么这样解呢?因为70是5和7的公倍数,且除以3余1。21是3和7的公倍数,且除以5余1。15是3和5的公倍数,且除以7余1。(任何一个一次同余式组,只要根据这个规律求出那几个关键数字,那么这个一次同余式组就不难解出了。)把70、21、15这三个数分别乘以它们的余数,再把三个积加起来是233,符合题意,但不是最小,而105又是3、5、7的最小公倍数,去掉105的倍数,剩下的差就是最小的一个答案。用歌诀解题容易记忆,但有它的局限性,只能限于用3、5、7三个数去除,用其它的数去除就不行了。后来中国数学家又研究了这个问题,运用了像上面分析的方法那样进行解答。
 
例1:一个数被3除余1,被4除余2,被5除余4,这个数最小是几?题中3、4、5三个数两两互质。则〔4,5〕=20;〔3,5〕=15;〔3,4〕=12;〔3,4,5〕=60。为了使20被3除余1,用20×2=40;使15被4除余1,用15×3=45;使12被5除余1,用12×3=36。然后,40×1+45×2+36×4=274,因为,274>60,所以,274-60×4=34,就是所求的数。
 
例2:一个数被3除余2,被7除余4,被8除余5,这个数最小是几?题中3、7、8三个数两两互质。则〔7,8〕=56;〔3,8〕=24;〔3,7〕=21;〔3,7,8〕=168。为了使56被3除余1,用56×2=112;使24被7除余1,用24×5=120。使21被8除余1,用21×5=105;然后,112×2+120×4+105×5=1229,因为,1229>168,所以,1229-168×7=53,就是所求的数。
 
例3:一个数除以5余4,除以8余3,除以11余2,求满足条件的最小的自然数。题中5、8、11三个数两两互质。则〔8,11〕=88;〔5,11〕=55;〔5,8〕=40;〔5,8,11〕=440。为了使88被5除余1,用88×2=176;使55被8除余1,用55×7=385;使40被11除余1,用40×8=320。然后,176×4+385×3+320×2=2499,因为,2499>440,所以,2499-440×5=299,就是所求的数。
 
例4:有一个年级的同学,每9人一排多5人,每7人一排多1人,每5人一排多2人,问这个年级至少有多少人 ?(幸福123老师问的题目)题中9、7、5三个数两两互质。则〔7,5〕=35;〔9,5〕=45;〔9,7〕=63;〔9,7,5〕=315。为了使35被9除余1,用35×8=280;使45被7除余1,用45×5=225;使63被5除余1,用63×2=126。然后,280×5+225×1+126×2=1877,因为,1877>315,所以,1877-315×5=302,就是所求的数。
 
例5:有一个年级的同学,每9人一排多6人,每7人一排多2人,每5人一排多3人,问这个年级至少有多少人 ? 题中9、7、5三个数两两互质。则〔7,5〕=35;〔9,5〕=45;〔9,7〕=63;〔9,7,5〕=315。为了使35被9除余1,用35×8=280;使45被7除余1,用45×5=225;使63被5除余1,用63×2=126。然后,280×6+225×2+126×3=2508,因为,2508>315,所以,2508-315×7=303,就是所求的数。(例5与例4的除数相同,那么各个余数要乘的“数”也分别相同,所不同的就是最后两步。)
 
 
关于“中国剩余定理”类型题目的另外解法“中国剩余定理”解的题目其实就是“余数问题”,这种题目,也可以用倍数和余数的方法解决。不懂论坛上有没人发过。小学奥赛考试时学习过,也用过,现在把方法写出来,如果懂的也别笑我,呵呵。例一,一个数被5除余2,被6除少2,被7除少3,这个数最小是多少?解法:题目可以看成,被5除余2,被6除余4,被7除余4。看到那个“被6除余4,被7除余4”了么,有同余数的话,只要求出6和7的最小公倍数,再加上4,就是满足后面条件的数了,6X7+4=46。下面一步试下46能不能满足第一个条件“一个数被5除余2”。不行的话,只要再46加上6和7的最小公倍数42,一直加到能满足“一个数被5除余2”。这步的原因是,42是6和7的最小公倍数,再怎么加都会满足“被6除余4,被7除余4”的条件。46+42=8846+42+42=13046+42+42+42=172这是一种形式的,它的前提是条件中出现同余数的情况,如果遇到没有的,下面讲例二,一个班学生分组做游戏,如果每组三人就多两人,每组五人就多三人,每组七人就多四人,问这个班有多少学生?解法:题目可以看成,除3余2,除5余3,除7余4。没有同余的情况,用的方法是“逐步约束法”,就是从“除7余4的数”中找出符合“除5余3的数”,就是再7上一直加4,直到所得的数除5余3。得出数为18,下面只要在18上一直加7和5得最小公倍数35,直到满足“除3余2”4+7=1111+7=1818+35=53这种方法也可以解“中国剩余定理”解的题目。比“中国剩余定理”更好理解,我觉的速度上会比那个繁琐的公式化的解题更快。大家可以试下. 所以:一共有5个 187 367 547 727 907
 
此题的初等解法
四川省三台县工商局王志成的初等解法,简单、方便、可以永远的延续下去。
条件1、三三数之余二 ,条件2、五五数之余三 ,条件3、七七数之余二,条件4、十一十一数之余七,条件5、十三十三数之余五,条件6、十七十七数之余七,
⒈满足条件1为等差数列:3N+2。
⒉将等差列3N+2取5项有:2,5,8,11,14,必然有一项满足条件2,五五数之余三,结果为8,同时满足条件1和2的为等差数列:15N+8。
⒊将等差列15N+8取7项有:8,23,38,53,68,83,98,必然有一项满足条件3,七七数之余二,结果为23,同时满足条件1,2,3的为等差数列:23+ 105N。
⒋将等差列23+ 105N取11项有:23,128,233,338,443,548,653,758,863,968,1073,必然有一项满足条件4,十一十一数之余七,结果为128,同时满足条件1,2,3,4的为等差数列:128+1155N。
⒌将等差列128+1155N取13项有:128,1283,2438,3593,4748,5903,7058,8213,9368,10523,11678,12833,13988,必然有一项满足条件5,十三十三数之余五,结果为3593,同时满足条件1,2,3,4,5的为等差数列:3593+15015N。
⒍将等差列3593+15015N N取17项有:3593,18608,33623,48638,63653,78668,93683,108698,123713,138728,153743,168758,183773,198788,213803,228818,243833,必然有一项满足条件6,十七十七数之余七,结果为198788,同时满足条件1,2,3,4,5,6的为等差数列:198788+255255N。
 
数列化简
当等差数列的首项及公差较大时,对于求任何素因子的余数,都可以先进行化简计算。
如在该问题的基础上,增加十九十九数余5,如果对198788+255255N取19项再寻找每一项的余数,用笔算是相当的不方便,我们用首项和公差分别除以19的余数,得新的等差数列:10+9N,取19项之内有:10,0(当满或超过19时减去19再算),9,18,8,17,7,16,6,15,5,当出现与余数相同的数后,就可以不再计算了。因该数列第11项除以19余5。
即原数列的第11项除以19必然余5,198788+255255*(11-1)=2751338,得等差数列2751338+4849845N的数,为满足上面七个条件的数。
原创粉丝点击