中国剩余定理

古代数学的光辉业绩

——中国剩余定理

    我国古代数学名著《孙子算经》载有一道数学问题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?”这里的几何指多少的意思。翻译成数学语言就是:求正整数N,使N除以32,除以53,除以72

    如何求符合上述条件的正整数N呢?《孙子算经》给出了一个非常有效的巧妙解法。术曰:“三、三数之剩二,置一百四十;五、五数之剩三,置六十三;七、七数之剩二,置三十,并之,得二百三十三。以二百一十减之,即得。凡三、三数之剩一,则置七十;五、五数之剩一,则置二十一;七、七数之剩一,则置十五。一百六以上,一百五减之,即得。

过了一千多年,到了十六世纪,数学家程大位在他所著的《算法统宗》里把这个问题的解法用歌诀形式表述出来。三人同行七十稀, 五树梅花廿一枝,七子团圆正月半,除百零五便得之。

    歌诀的前三句给出了三组数,后一句给出了一个数:

            3    70

            5    21

            7    15

              105

    三组数的共同特征是:

       70除以31,除以570 21除以51,除以370 15除以71,除以350

    首先程大位把不同的余数问题统一化为标准的余数问题。然后,他把复杂难解的问题化解为三个易解的问题。702115分别是满足第一、二、三行条件的最小解。

       2×70满足原题第一个余数条件,且被57整除。

      3×21满足原题第二个余数条件,且被37整除。

      2×15满足原题第三个余数条件,且被35整除。

   统统相加得和:N=2×70+3×21+2×15=233

       N必然满足原题所有三个余数条件。但N不一定是最小的。歌诀最后一句“除百零五便得知”,这里“除”的意思是“减”,意即从233中减去357的最小公倍数105的倍数便得到23。这个23就是问题的最小解。这最后一句也可以理解为N除以105的余数就是问题的最小解。

   中国古代数学有一个传统,总是以具体的数量关系表示一般的规律。把中国剩余定理译成数论术语就是:

   设m1m2m3是两两互质的正整数,对任意给定的整数a1a2a3,必存在整数,满足

        xa1 (mod m1)       xa2 (mod m2),      xa3 (mod m3)

   并且满足上列方程组的解x(mod m1m2m3)是存在唯一的。

     上面定理的表述是为方便或为忠于《孙子算经》,我们只写出含三个余数的情形,其实,这个定理对n个余数是通用的。

     这个算法,给出了这类问题的非常简捷的一般解法。这个算法,具有非凡的数学思想,并对数论、代数产生了重要影响,中国称此算法为“孙子定理”,国际上称此为“中国剩余定理”。这是中国数学对世界数学最重要的贡献之一。中国剩余定理除本身的重要性之外,它还提示人们,要解决较复杂的问题,最好把它分解为几个易解的子问题;把问题各不相同的条件化成标准的条件,然后用标准的、统一的方法去处理。这是两种重要的数学思想。

    南宋数学家秦九韶在他的《数书九章》中推广了“物不知数”问题,提出了计算“乘率”的方法——“大衍求一术”,使解决一次同余式问题的方法形成系统化的数学理论。

    在西方,直到十八世纪,瑞士的欧拉与法国的拉格朗日才对同余式问题进行系统的研究。十九世纪的第一年,德国的高斯在《算术探究》一书中,才提出解决这类问题的方法——剩余定理,并给出了严格证明,被后人称为“高斯定理”。1852年英国基督教士伟烈亚力在《字林西报》上发表了《中国科学的记述》,介绍《孙子算经》中的“物不知数”题,并第一次解释了“大衍求一术”,并指出它实质上和高斯定理是一致的。当时,德国著名数学家康托尔称赞秦九韶是“最幸运的天才”,秦九韶推广了“中国的剩余定理”,为我国和世界数学史增添了光彩。

中国剩余定理的补充资料 

已知m1m2m3是两两互质的正整数,求最小正整数x,使它被m1m2m3除所得余数分别为C1C2C3 

孙子定理的思想便是先分别找出被其中数mi除余1而被另二数整除的数Mi(i=123),则所求的数之一便是   C1M1+C2M2+C3M3

若欲求的是最小的符合要求的数,则将上面的得数减去m1m2m3的整数倍(012…)即可

在古算题中,m1=3m2=5m3=7C1=2C2=3C3=2M1=70M2=21M3=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≥2nN,国外称此定理为中国剩余定理

民间传说着一则故事——“韩信点兵

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

在一千多年前的《孙子算经》中,有这样一道算术题:

今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?按照今天的话来说:一个数除以32,除以53,除以72,求这个数.

这样的问题,也有人称为韩信点兵”.它形成了一类问题,也就是初等数论中解同余式.这类问题的有解条件和解的方法被称为中国剩余定理,这是由中国人首先提出的.

 有一个数,除以32,除以41,问这个数除以12余几?

解:除以32的数有: 2 5 8 1114 17 20 23….

它们除以12的余数是: 2581125811….

除以41的数有: 1 5 9 13 17 21 25 29….

它们除以12的余数是: 1 5 9 1 5 9….

一个数除以12的余数是唯一的.上面两行余数中,只有5是共同的,因此这个数除以12的余数是5.

如果我们把的问题改变一下,不求被12除的余数,而是求这个数.很明显,满足条件的数是很多的,它是 512×整数,

整数可以取012,无穷无尽.事实上,我们首先找出5后,注意到1234的最小公倍数,再加上12的整数倍,就都是满足条件的数.这样就是把除以32,除以41”两个条件合并成除以125”一个条件.《孙子算经》提出的问题有三个条件,我们可以先把两个条件合并成一个.然后再与第三个条件合并,就可找到答案.

一个数除以32,除以53,除以72,求符合条件的最小数.

解:先列出除以32的数: 2 5 8 11 14 17 20 23 26

再列出除以53的数: 3 8 13 18 23 28….

这两列数中,首先出现的公共数是8.35的最小公倍数是15.两个条件合并成一个就是815×整数,列出这一串数是8 23 38,再列出除以72的数 2 9 1623 30

就得出符合题目条件的最小数是23.

事实上,我们已把题目中三个条件合并成一个:被105除余23.

那么韩信点的兵在1000-1500之间,应该是105×10+23=1073

定理得内容:若某数x分别被d1d2dn除得的余数为r1r2rn,则x可表示为下式:x=R1r1+R2r2+…+Rnrn+RD

其中R1d2d3dn的公倍数;而且被d1除,余数为1Rnd1d2dn-1的公倍数;而且被dn除,余数为1Dd1d2dn的最小公倍数;R是任意整数,可根据实际需要决定,且d1d2dn必须互质,以保证每个RiI=12n)都能求得。

一、剩余问题
       
在整数除法里,一个数同时除以几个数,整数商后,均有剩余;已知各除数及其对应的余数,从而要求出适合条件的这个被除数的问题,叫做剩余问题。

二、两个定理
       
定理1:几个数相加,如果只有一个加数,不能被数a整除,而其他加数均能被数a整除,那么它们的和,就不能被数a整除。

如:10能被5整除,15能被5整除,但7不能被5整除,所以(10+15+7)不能被5整除。

定理2:二数不能整除,若被除数扩大(或缩小)了几倍,而除数不变,则其余数也同时扩大(或缩小)相同的倍数(余数必小于除数)。

        如:22÷73……1
       
22×4÷712……1×4(=4
       
(要余2 22×2÷76……2
       
22×9÷728……1×9-7(=2
       
(想余522×5÷715……5

三、读解《中国剩余定理》
       
中国数学史书上记载:在两千多年前的我国古代算书《孙子算经》中,有这样一个问题及其解法:

今有物不知其数,三三数之剩二;五五数之剩三:七七数之剩二。问物几何?

答曰:23

术曰:三三数之剩二,置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十。并之,得二百三十三,以二百一十减之即得。

即解法。书中还介绍了上述问题中余数为一的一般解法:凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一则置十五;一百六以上,以一百零五减之即得。

在明朝程大位著《算术统宗》一书中,把上述问题的基本解法,用诗句概括为:

三人同行七十稀,五树梅花廿一枝,七子团圆正半月,除百令五便得知。
       
解法1:依定理译成算式解为:
        70×2
21×315×2233
        233
105×223
       
这就是享誉中外的《中国剩余定理》。对此古代剩余问题,时至今日另有解法。
       
解法2:用各除数的基础数法解。
       
基础数的条件:
       
1)此数必须符合除数自身的余数条件;
       
2)此数必须是其他所有各除数的公倍数。
       
(一)求各除数的最小公倍数[357]=105
       
(二)求各除数的基础数
       
1)[3 105÷335   35÷311……2
       
2)[5 105 ÷ 521   21÷54……1(当于3
            
1×33  ∴ 21×3=[63
       
3)[7] 105 ÷ 715     15 ÷ 72……1当于2
            
1×22   15×2=[30
       
(三)求各基础数的和35+63+30128
        
(四)求基准数(最小的,只有一个)128-105=23
       
(五)求适合条件的数X    X23+105KK是整数)(注:此法易行,且具有一般性)
       
解法3:用枚举筛选法解
       
按除数37同余2,依次逐一枚举;随后用除以53,进行筛选,便可获解。
       
摘录条件
                  3......2
       
(基准数) ÷5……3        同余 2
                  7......2
       
(一)求37的最小公倍数
           
37] 21
       
(二)进行枚举筛选
       
1212=23     23÷54……3
       
一般地有:X=基准数+各除数的最小公倍数×KK是整数)
       
四、剩余问题的解法与应用
       
例:韩信点兵,有兵一队,若列成五行纵队,则末行一人;若列成六行纵队,则末行五人;若列成七行纵队,则末行四人;若列成十一行纵队,则末行十人,求兵数至少有多少人?
       
用基础数法解:
                     5......l
       
基准数(2111÷6……5
                     7......4
                     11......10
       
(一)求各除数的最小公倍数
           
5 6 7 11]2310
       
(二)求各除数的基础数
       
l)[5] 2310÷5462
          462÷5
92……2
          
2×351
          
462×3=[1386
       
2)[6] 2310÷6385
           385÷6
64……1
           
 1×55
           
385×5=[1925
       
3)[7 2310÷7330
          330÷7
47……1
         
1×44
         
330×4=[1320
        
4)[11] 2310÷11210
           210÷11
19……1
          
1×1010
          
210×10=[2100
        
(三)求各基础数的和
        1386
1925132021006731
        
(四)求最小的基准数
        6731
2310×22111(人)
        
(五)求最适合条件的数X
        X=2111
2310KK为整数)
        
答:这队兵至少有2111人。
        
注:各除数应两两互质,可确保命题的真实性。
       
五、推导《358剩余定理)及启用
       
题目:一个数除以32;除以53;除以8则余1。此数最小是多少?
        
摘录条件          3……2
        
(基准数)(113÷5……3
                        8......1   
       A
、推导定理:只要能确定358各除数的余数均为1的基础数,便可推导出定理,随后再乘以各对应的余数,即可依此定理解题。
        
(一)[358]120
        
(二)求各除数的余数均为1的基础数
        
1)[3]120÷340
           
40÷313……1
        
2)[5120÷524      24÷54……4
          
4×45×3l
          
24×4=[96]
        
3)[8]120÷815      15÷81……7
           
7×78×61 
           
15×7=[105]
        
由此得出《358剩余定理》诗曰:
        
三人同行40多,五树梅花96朵,
        
八仙过海105招,除百二十便解惑。
       
(三)分别乘以各对应的余数再求和而获解
        40×2
96×3105×l473
       
(四)求最小的基准数
        473
120×3113
        B
、启用定理,再解两题
        
(一)         3……1
            
79÷5……4
                  8......7
        
解:40×196×4105×71159
           1159
120×979
        
(二)         3……2
            
11÷5……1
                  8......3
        
解:40×296×1105×3491
           491
120×411
       C
、补充《345剩余定理》
        
三人同行40里,四季花开45枝,
        
五朵金花36浪,除去六十便得知。
                  3......2
            
53÷4……1
                  5......3
        
解:40×245×136×3233
           233
60×353
       
由此可知,剩余问题解法定理,都是可以推得的,都是非常灵验的。
       
通过对剩余问题的研讨,使我们进一步认识了其解法定理,提高了解题能力,证明其解题方法可行、实用、有趣和灵活多样。《358剩余定理》、《345剩余定理》……abc剩余定理》等解法定理的推导成功,证明对剩余问题完全可以运用定理解题

读解《中国剩余定理》
     
中国数学史书上记载:在两千多年前的我国古代算书《孙子算经》中,有这样一个问题及其解法:
     
今有物不知其数,三三数之剩二;五五数之剩三:七七数之剩二。问物几何?
     
答曰:23

《孙子算经》中给出这类问题的解法:“三三数之剩二,则置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十;并之得二百三十三,以二百一十减之,即得。凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五,一百六以上,以一百五减之,即得。”用现代语言说明这个解法就是:
  首先找出能被57整除而被3除余1的数70,被37整除而被5除余1的数21,被35整除而被7除余1的数15
  所求数被3除余2,则取数70×2140140是被57整除而被3除余2的数。
  所求数被5除余3,则取数21×36363是被37整除而被5除余3的数。
  所求数被7除余2,则取数15×2=3030是被35整除而被7除余2的数。
  又,1406330=233,由于6330都能被3整除,故233140这两数被3除的余数相同,都是余2,同理23363这两数被5除的余数相同,都是3233307除的余数相同,都是2。所以233是满足题目要求的一个数。
  而357的最小公倍数是105,故233加减105的整数倍后被357除的余数不会变,从而所得的数都能满足题目的要求。由于所求仅是一小队士兵的人数,这意味着人数不超过100,所以用233减去1052倍得23即是所求。

中国剩余定理算理及其应用

7057的公倍数,且除以312137的公倍数,且除以511535的公倍数,且除以71。(任何一个一次同余式组,只要根据这个规律求出那几个关键数字,那么这个一次同余式组就不难解出了。)把702115这三个数分别乘以它们的余数,再把三个积加起来是233,符合题意,但不是最小,而105又是357的最小公倍数,去掉105的倍数,剩下的差就是最小的一个答案。

用歌诀解题容易记忆,但有它的局限性,只能限于用357三个数去除,用其它的数去除就不行了。后来我国数学家又研究了这个问题,运用了像上面分析的方法那样进行解答。

1:一个数被3除余1,被4除余2,被5除余4,这个数最小是几? 题中345三个数两两互质。

则〔45=20;〔35=15;〔34=12;〔345=60

为了使203除余1,用20×2=40

使154除余1,用15×3=45

使125除余1,用12×3=36

然后,40×145×236×4=274

因为,274>60,所以,27460×4=34,就是所求的数。

2:一个数被3除余2,被7除余4,被8除余5,这个数最小是几? 题中378三个数两两互质。

则〔78=56;〔38=24;〔37=21;〔378=168

为了使563除余1,用56×2=112

使247除余1,用24×5=120

使218除余1,用21×5=105

然后,112×2120×4105×5=1229

因为,1229>168,所以,1229168×7=53,就是所求的数。

3:一个数除以54,除以83,除以112,求满足条件的最小的自然数。 题中5811三个数两两互质。

则〔811=88;〔511=55;〔58=40;〔5811=440

为了使885除余1,用88×2=176

使558除余1,用55×7=385

使4011除余1,用40×8=320

然后,176×4385×3320×2=2499

因为,2499>440,所以,2499440×5=299,就是所求的数。

4:有一个年级的同学,每9人一排多5人,每7人一排多1人,每5人一排多2人,问这个年级至少有多少人 ?(幸福123老师问的题目) 题中975三个数两两互质。

则〔75=35;〔95=45;〔97=63;〔975=315

为了使359除余1,用35×8=280

使457除余1,用45×5=225

使635除余1,用63×2=126

然后,280×5225×1126×2=1877

因为,1877>315,所以,1877315×5=302,就是所求的数。

5:有一个年级的同学,每9人一排多6人,每7人一排多2人,每5人一排多3人,问这个年级至少有多少人 ?(泽林老师的题目)

题中975三个数两两互质。

则〔75=35;〔95=45;〔97=63;〔975=315

为了使359除余1,用35×8=280

使457除余1,用45×5=225

使635除余1,用63×2=126

然后,280×6225×2126×3=2508

因为,2508>315,所以,2508315×7=303,就是所求的数。

(例5与例4的除数相同,那么各个余数要乘的也分别相同,所不同的就是最后两步。)

关于中国剩余定理类型题目的另外解法

中国剩余定理解的题目其实就是余数问题,这种题目,也可以用倍数和余数的方法解决。 如:

例一,一个数被5除余2,被6除少2,被7除少3,这个数最小是多少?

解法:题目可以看成,被5除余2,被6除余4,被7除余。看到那个6除余4,被7除余4”了么,有同余数的话,只要求出67的最小公倍数,再加上4,就是满足后面条件的数了,6X7446。下面一步试下46能不能满足第一个条件一个数被5除余2”。不行的话,只要再46加上67的最小公倍数42,一直加到能满足一个数被5除余2”。这步的原因是,4267的最小公倍数,再怎么加都会满足

6除余4,被7除余4”的条件。

464288     464242130    46424242172

这是一种形式的,它的前提是条件中出现同余数的情况,如果遇到没有的,下面讲

例二,一个班学生分组做游戏,如果每组三人就多两人,每组五人就多三人,每组七人就多四人,问这个班有多少学生?

解法:题目可以看成,除32,除53,除74。没有同余的情况,用的方法是逐步约束法,就是从74的数中找出符合53的数,就是在4上一直加7,直到所得的数除53。得出数为18,下面只要在18上一直加75得最小公倍数35,直到满足32”

4711    11718   183553

这种方法也可以解中国剩余定理解的题目。比中国剩余定理更好理解,我觉的速度上会比那个繁琐的公式化的解题更快。

附录

一、【《孙子算经》简介

    《孙子算经》算经十书之一,是公元四世纪左右的数学著作,编撰年代不详。作者孙子,公元四世纪时人,生平不详。现传本分上、中、下三卷。上卷叙述度量衡制度、筹算记数和筹算乘除算法;中卷举例说明筹算分数算法、开平方和面积、体积计算;下卷是各种应用问题。中、下两卷共有各类算题64题。

    《孙子算经》中“物不知数”问题及解法,属于一次同余式组,数论中称为“中国剩余定理”,也称“孙子定理”,秦九韶在此基础上,进一步研究,提出了“大衍求一术”。经我国历代数学家研究发展成完整严谨的理论与方法。

    《孙子算经》是古代较为普及的算书。其中算题写得浅近有趣。例如“鸡兔同笼”(雉兔同笼)题远传日本(日本称为“鹤龟算”)。

“雉兔同笼”题为:“今有雉兔同笼,上有三十五头,下有九十四足。问雉兔各几何?”

二、【程大位简介

    程大位(15331606年)字汝思,号宾渠。安徽休宁县率口(今为安徽省屯溪市前园村,其地土名渠沿)人,出身小商。据记载,程大位幼年聪敏好学,尤其喜爱数学,常“不惜重资,以购求遗书”,“遇方田、米粟、差分、少广、商功、均输、盈不足、方程、勾股诣书,辄厚资购得之。”二十岁左右,他利用外出经商的机会,“遨游吴楚,博访闻人志士”,接触了许多实际问题,深感学习数学之重要。程大位早年就外出经商,分析毫末,较量锱铢,持筹握算;加之好学不倦,因而从中养成了认真、细致、精核、严谨的精神。他不仅深入实际,搜集问题,而且帮助群众解决问题。

    程大位谦虚好学,治学严谨。他利用“商游吴楚”的机会,遇有“睿通数学者,辄造请问难,孜孜不倦”。在他所著的《算法统宗》中,就刻有“师生问难图”,一个青年手持算盘,向老者请教,态度至诚。程大位四十岁后,倦于外游,便“归而覃思于率水之上余二十年”。认真钻研古籍资料,绎其文义,审其成法,遍取各家之长,加上自己的心得体会,程大位花了毕生精力,终于于明万历壬辰(1592年)写成巨著《直指算法统宗》一书,共十七卷。书中列举算题五百九十五个,都附有详细解法。其后六年,又对该书“删其繁芜,揭其要领”,写成《算法纂要》四卷,先后在当时的休宁县屯溪发行。

  《算法统宗》是一本良好的教科书,它结构严谨,循序渐进,文字通俗,明白易懂,由浅入深,饶有风趣。《算法统宗》很注意形数结合,利用图形的变换来论证算法的依据,即所谓“演段根源图”。《算法统宗》中集录了许多“难题”,这些题目均以诗歌形式出现。如:当年苏武去北边    不知去了几周年    分明记得天边月    二百三十五番圆。再如:今携一壶酒    游春郊外走    逢朋添一倍    入店饮九斗  相逢三处店    饮尽壶中酒    试问能算士    如何知原有。

    这一类题目,富有民族特色,能激发学习兴趣,开发智力,培养爱国主义思想感情,即使在今天也还值得推荐。

  《算法统宗》集珠算之大成,在我国数学史上有重要地位。

   在中国数学研究的低潮时期,一个小商人,能不惜资金购买算书,“殚思竭虑,精研其术”,终于克通其奥,写出引人注目的巨著,自己出资,锓锌以传,且不断增删,多次发行。这种精神,实为难能可贵。正因为如此,程大位被人推崇,赠给“隶首薪传”(隶首,传说为黄帝时人,始定算数。薪传,薪尽火传,比喻道术学业之师矛相传。语出《庄子》。)匾额,高悬大厅数百年。


posted @ 2015-09-17 20:43  Tovi  阅读(1083)  评论(0编辑  收藏  举报