中国剩余定理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在中国古代劳动人民中,长期流传着“隔墙算”、“剪管术”、“秦王暗点兵”等数学游戏。

有一首“孙子歌”,甚至远渡重洋,输入日本:
“三人同行七十稀,五树梅花廿一枝,
七子团圆正半月,除百零五便得知。


这些饶有趣味的数学游戏,以各种不同形式,介绍世界闻名的“孙子问题”的解法,通俗地反映了中国古代数学一项卓越的成就。

“孙子问题”在现代数论中是一个一次同余问题,它最早出现在中国公元四世纪的数学着作《孙子算经》中。

《孙子算经》卷下“物不知数”题说:有物不知其数,三个一数余二,五个一数余三,七个一数又余二,问该物总数几何?显然,这相当于求不定方程组
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)的选取使所得到的三数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倍,变成30。

中国剩余定理”算理及其应用:
为什么这样解呢?因为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的除数相同,那么各个余数要乘的“数”也分别相同,所不同的就是最后两步。


此题的初等解法
四川省三台县工商局王志成的初等解法,简单、方便、可以永远的延续下去。

条件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+15015NN取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的数,为满足上面七个条件的数。

如何判别错题?
在计算余数问题上,很容易出现错题,正确的题有解,错误的题是无解的。

什么是错题?题意自相矛盾的题是错题。

判断标准:一个数除以一个素因子只有一个余数;除以合数时,要看它与合数的素因子的余数是否有矛盾。

⒈素因子的重复。

即M/A余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必须服从该条件。

因8/3余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,8/3余2与前面的除以3余1矛盾,8/5余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,有M/3余2,M/5余3,M/7余2,M/11余3,M/13余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项,寻找除以273余2的数呢?
最好是:
⒈在2+273N取11项:2,275,548,821,1094,1367,1640,1913,2186,2459,2732,有1367/11余3,因273*11=3003,得等差数列1367+3003N;
⒉在1367+3003N取5项:1367,4370,7373,10376,13379,有7373/5余3,因3003*5=15015,即7373+15015等差数列中的数都满足这些条件。

因为,这样是取5+11=16个数中寻找,而不是取5*11=55个数中寻找。

再看原题,M/3余2,M/5余3,M/7余2,求M=?
因M除以3和7都余2,有等差数列2+21N满足除以3和7都余2,在2+21N数列取5项:2,23,44,65,86,得23/5余3,因3*5*7=105,即23+105N数列的数都满足这些条件。

相关文档
最新文档