中国剩余定理
天涯若比邻的意思-小拉姆
中国剩余定理
在中国古代劳动人民中,长期流传着“隔墙算”、“剪管术”、“秦王暗
点兵”等数学游戏。
有一首“孙子歌”,甚至远渡重洋,输入日本:
“三人同行七十稀,五树梅花廿一枝,
七子团圆正半月,除百零五便得知。”
这些
饶有趣味的数学游戏,以各种不同形式,介绍世界闻名的“孙子问题”的解法,通俗
地反映了中国古代数
学一项卓越的成就。“孙子问题”在现代数论中是一个一次同余问题,它
最早出现在中国公元四世纪的数
学著作《孙子算经》中。《孙子算经》卷下“物不知数”题说:
有物不知其数,三个一数余二,五个一数
余三,七个一数又余二,问该物总数几何?显然,
这相当于求不定方程组
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、21和15这三个数的确定。后来流传的《孙子歌》中所说
“七十稀”、“廿一枝”和“正半月
”,就是暗指这三个关键的数字。《孙子算经》没有说明这三个
数的来历。实际上,它们具有如下特性:
也就是说,这三个数可以从最小公倍数M=3×5×7=105中各约去模数3、5、7后,再
分别乘以整数2、1、1而得到。假令k1=2,K2=1,K3=1,那么整数Ki(i=1,2,3)的选<
br>取使所得到的三数70、21、15被相应模数相除的时候余数都是1。由此出发,立即可以推
出
,在余数是R1、R2、R3的情况下的情况。
解法中的三个关键数70,21,15
,有何妙用,有何性质呢?首先70是3除余1而5
与7都除得尽的数,所以70a是3除余a,而5与
7都除得尽的数,21是5除余1,而3
与7都除得尽的数,所以21b是5除余b,而3与7除得尽的
数。同理,15c是7除余c,
3与5除得尽的数,总加起来 70a+21b+15c
是3除余a,5除余b ,7除余c的数,也就
是可能答案之一,但可能不是最小的,这数加减105(
105=3×5×7)仍有这样性质,可以多次
减去105而得到最小的正数解。
附:如70,其实是要找余2的,但只要找到了余1的再乘2即余二了。
孙子问题的解法,以
现代的说法,是找出三个关键数70,21,15。解法的意思就是用
70乘3除所得的余数,21乘5
除所得的余数,15乘7除所得的余数,然后总加起来,除
以105的余数就是答案。
即题目的答案为 70×2+21×3+15×2
=140+63+30
=233
233-2×105=23
公式:70a+21b+15c-105n
题中有三个
数,分别为3、5、7,5×7÷3余数为2,取35;3×7÷5余数为1,要使余
数为3,只需将3
×7扩大3倍变成63即可;同样3×5÷7的余数为1,要使余数为2,则将
3×5扩大2倍,变成3
0。
中国剩余定理”算理及其应用:
为什么这样解呢?因为70是5和7的公倍数,且除以
3余1。21是3和7的公倍数,
且除以5余1。15是3和5的公倍数,且除以7余1。(任何一个一
次同余式组,只要根
据这个规律求出那几个关键数字,那么这个一次同余式组就不难解出了。)把70、
21、15
这三个数分别乘以它们的余数,再把三个积加起来是233,符合题意,但不是最小,而10
5
又是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,就是
所求的数。
p>
例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=2
25;使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得最小
公倍数3
5,直到满足“除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,5
3,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,59
03,7058,
8213,9368,10523,11678,12833,13988,必然有一
项满足条件5,十三十三数之余
五,结果为3593,同时满足条件1,2,3,4,5的为等差数列:
3593+15015N。
⒍将等差列3593+15015N N取17项有:3593,1860
8,33623,48638,63653,
78668,93683,108698,123713,
138728,153743,168758,183773,198788,213803,
2288
18,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,1
5,5,当出现与余数相同的数后,就可以不再计算了。因该数列第11项除以
19余5。
即原数列的第11项除以19必然余5,198788+255255*(11-1)=27513 38,得等差
数列2751338+4849845N的数,为满足上面七个条件的数。
如何判别错题?
在计算余数问题上,很容易出现错题,正确的题有解,错误的题是无解的。什 么是错
题?题意自相矛盾的题是错题。判断标准:一个数除以一个素因子只有一个余数;除以合数
时,要看它与合数的素因子的余数是否有矛盾。
⒈素因子的重复。即MA余C,式中的M与A都是固 定的,那么,余数C只能有一
个。除以同一个素因子可以在题中出现多次,但余数必须相同,否则,就是 错题。如,除以
3余1,除以5余2,除以7余3,除以3余2,问该数为多少?这里的除以3余1与除 以
3余2自相矛盾,为错题。
⒉单个素因子组成的合数。如,除以3余1,除以5余2,除以 7余3,除以9余8,
问该数为多少?因为,9是由素因子3组成的,既然前面明示除以3余1,那么, 这里的除
以9必须服从该条件。因83余2与除以3余1矛盾,该题为错题。满足除以3余1的在9之内只有1+3N为:除9余1,余4,余7。除以9余2,3,5,6,8,0都属于错题。
⒊ 多个素因子组成的合数。如,除以3余1,除以5余2,除以7余3,除以15余8,
问该数为多少?因 为,这里的除以15余8,83余2与前面的除以3余1矛盾,85余3与
前面的除以5余2矛盾,该题 为错题。同时满足除以3余1,除以5余2有:7+15N,即
除以15只能余7,对于除以15余0, 1,2,3,4,5,6,8,9,10,11,12,13,14
都属于错题。除以多个素因子组成的 合数时,必须与题中所出现的素因子不产生矛盾,不产
生矛盾的标准是除以多个素因子组成的合数,必须 是同时满足题中所出现(合数所包含的)
的素因子的数。
同余的解法
当你看了在上面的初等解法后,对同余的解法就简单了。
例某数为M,有M3余2,M5余3,M7余2,M11余3,M13余2,求M=?
这里有 M除以3,7,13都余2,因3*7*13=273,即2+273N为满足除以3,7,13
都余2 的等差数列;
同理,M除以5,11余3,因5*11=55,即3+55Z等差数列的数为满足除以 5和11
都余3的等差数列。
于是这里出现了两个等差数列:2+273N和3+55Z,是 在2+273N数列取55项寻找除
以55余3的数呢?还是在3+55Z数列取273项,寻找除以2 73余2的数呢?
最好是:
⒈在2+273N取11项:2,275,54
8,821,1094,1367,1640,1913,2186,2459,
2732,有1367
11余3,因273*11=3003,得等差数列1367+3003N;
⒉在1367+3003
N取5项:1367,4370,7373,10376,13379,有73735余3,
因3003
*5=15015,即7373+15015等差数列中的数都满足这些条件。
因为,这样是取5+11=16个数中寻找,而不是取5*11=55个数中寻找。
再看原题,M3余2,M5余3,M7余2,求M=?
因M除以3和7都余2,有等差数列2
+21N满足除以3和7都余2,在2+21N数列
取5项:2,23,44,65,86,得235余
3,因3*5*7=105,即23+105N数列的数都满足
这些条件。