您的位置:首页 > 其它

关于“中国剩余定理”

2011-05-28 21:00 525 查看
公元前后的《孙子算经》中有“物不知数”问题:“今有物不知其数,三三数之余二 ,五五数之余三 ,七七数之余二,问物几何?”答为“23”。 --------这个就是传说中的“中国剩余定理”。

其实题目的意思就是,x%3=2,x%5=3,x%6=2;问x最小是多少?

解法:

1.首先找到3,5,7,的三个“关键数字”,即[5,6]=35;[3,7]=21;[3,5]=15

2.让35a%3=1,a=2; 让21b%5=1,b=1; 让15c%7=1,c=1(我们这里要让余数为1,是为了要求余数2的话,只要乘以2就可以,要求余数为3的话,只要乘以3就可以了,……)

3.所以 然后,35*2*2=140 21*1*3=63 15*1*2=30

4. Then 140+63+30=233 ,因为233>3*5*7 , 所以233- 105*2=23

上几个百度上的例题(我们会发现给出的除数都是亮亮互质的,显然……):

例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,就是所求的数。

还有人用一步步直接往下做的方法:

条件1、三三数之余二 ,条件2、五五数之余三 ,条件3、七七数之余二,条件4、十一十一数之余七,条件5、十三十三数之余五,条件6、十七十七数之余七,

  1、满足条件1为等差数列:3N+2。

  2、将等差列3N+2取5项有:2,5,8,11,14,必然有一项满足条件2,五五数之余三,结果为8,同时满足条件1和2的为等差数列:15N+8。

  3、将等差列15N+8取7项有:8,23,38,53,68,83,98,必然有一项满足条件3,七七数之余二,结果为23,同时满足条件1,2,3的为等差数列:23+ 105N。

  4、将等差列23+ 105N取11项有:23,128,233,338,443,548,653,758,863,968,1073,必然有一项满足条件4,十一十一数之余七,结果为128,同时满足条件1,2,3,4的为等差数列:128+1155N。

  5、将等差列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。

  6、将等差列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。

这些是今天在poj上做时做不出来,在discussion上看到人说用上是“中国剩余定理”的思想,遂百度知,只求了解算法思想,不求代码。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: