中国剩余定理

      中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国剩余定理,孙子定理

      公元前后的《孙子算经》中有“物不知数”问题:“今有物不知其数,三三数之余二 ,五五数之余三 ,七七数之余二,问物几何?”答为“23”。也就是求同余式组x≡2 (mod3),x≡3 (mod5 ),x≡2 (mod7)(式中a≡b (modm)表示m整除a-b )的正整数解。明朝程大位用歌谣给出了该题的解法:“三人同行七十稀,五树梅花廿一枝,七子团圆月正半,除百零五便得知。”即解为x≡2×70+3×21+2×15≡233≡23(mod105)。

     “已知m1、m2、m3是两两互质的正整数,求最小正整数x,使它被m1、m2、m3除所得余数分别为C1、C2、C3    .”   
      孙子定理的思想便是先分别找出被其中数mi除余1而被另二数整除的数Mi(i=1,2,3),则所求的数之一便是      C1M1+C2M2+C3M3;   
      若欲求的是最小的符合要求的数,则将上面的得数对m1*m2*m3求余即可
      在古算题中,m1=3,m2=5,m3=7;C1=2,C2=3,C3=2;M1=70,M2=21,M3=15.   
      其中   
           M1=70=3×23+1=5×7×2;   
           M2=21=5×4+1=3×7×1;   
           M3=15=7×2+1=3×5×1;   
           而  C1M1+C2M2+C3M3=2×70+3×21+2×15=233   
           ∵233>2×3×5×7=2×105,故所求最小数为  233-2×105=23   
      孙子定理可以推广到对任意n个数mi的情形,n≥2,n∈N,国外称此定理为“中国剩余定理”。

 

      民间传说着一则故事——“韩信点兵”。 
      秦朝末年,楚汉相争。一次,韩信将1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿兵马也返回大本营。当行至一山坡,忽有后军来报,说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。他命令士兵3人一排,结果多出2名;接着命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。韩信马上向将士们宣布:我军有1073名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。汉军本来就信服自己的统帅,这一来更相信韩信是“神仙下凡”、“神机妙算”。于是士气大振。一时间旌旗摇动,鼓声喧天,汉军步步进逼,楚军乱作一团。交战不久,楚军大败而逃。

 

      中国剩余定理的应用:POJ 1006题:

      

      Description

      人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高峰出现的时间)。你的任务是给定一个从当年第一天开始数的天数,输出从给定时间开始(不包括给定时间)下一次三个高峰落在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现三个高峰同天的时间是12,则输出2(注意这里不是3)。

      Input

      输入四个整数:p, e, i和d。 p, e, i分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d 是给定的时间,可能小于p, e, 或 i。 所有给定时间是非负的并且小于365, 所求的时间小于21252。

      Output

      从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)。
      解:
      使33×28被23除余1,用33×28×8=5544; 
      使23×33被28除余1,用23×33×19=14421; 
      使23×28被33除余1,用23×28×2=1288。 
      (5544×p+14421×e+1288×i)%(23×28×33)=n+d
        n=(5544×p+14421×e+1288×i-d)%(23×28×33)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值