剩余定理

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

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

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

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

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

如:22÷7=3 (1)
(22×4)÷7=12……1×4(=4)
(要余2即22×2÷7=6……2)
(22×9)÷7=28……1×9-7(=2)
(想余5则22×5÷7=15……5)
三、读解《中国剩余定理》
中国数学史书上记载:
在两千多年前的我国古代算书《孙子算经》中,有这样一个问题及其解法:
今有物不知其数,三三数之剩二;五五数之剩三:七七数之剩二。

问物几何?
答曰:23
术曰:“三三数之剩二,置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十。

并之,得二百三十三,以二百一十减之即得。


“术”即解法。

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

在明朝程大位著《算术统宗》一书中,把上述问题的基本解法,用诗句概括为:
三人同行七十稀,五树梅花廿一枝,
七子团圆正半月,除百令五便得知。

解法1:依定理译成算式解为:
70×2+21×3+15×2=233
233-105×2=23
这就是享誉中外的《中国剩余定理》。

对此古代剩余问题,时至今日另有解法。

解法2:用各除数的“基础数”法解。

基础数的条件:
(1)此数必须符合除数自身的余数条件;
(2)此数必须是其他所有各除数的公倍数。

(一)求各除数的最小公倍数
[3,5,7]=105
(二)求各除数的基础数
(1)[3]105÷3=35
[35]÷3=11 (2)
(2)[5]105 ÷ 5=21
21÷5=4……1(当余3)
∵1×3=3 21×3=[63]
(3)[7] 105 ÷ 7=15
15 ÷ 7=2……1(当余2)
∵1×2=2
∴15×2=[30]
(三)求各基础数的和
35+63+30=128
(四)求基准数(最小的,只有一个)
128-105=23
(五)求适合条件的数X
X=23+105K(K是整数)
(注:此法易行,且具有一般性)
解法3:用枚举筛选法解
按除数3,7同余2,依次逐一枚举;随后用除以5余3,进行筛选,便可获解。

摘录条件
3 (2)
(基准数)÷5……3同余 2
7 (2)
(一)求3和7的最小公倍数
[3,7] =21
(二)进行枚举筛选
(1)21+2=23 23÷5=4 (3)
一般地有:X=基准数+各除数的最小公倍数×K(K是整数)
四、剩余问题的解法与应用
例:韩信点兵,有兵一队,若列成五行纵队,则末行一人;若列成六行纵队,则末行五人;若列成七行纵队,则末行四人;若列成十一行纵队,则末行十人,求兵数至少有多少人?
用基础数法解:
5......l
基准数(2111)÷6 (5)
7 (4)
11 (10)
(一)求各除数的最小公倍数
[5, 6, 7, 11]=2310
(二)求各除数的基础数
(l)[5] 2310÷5=462
462÷5=92 (2)
∵2×3-5=1
∴462×3=[1386]
(2)[6] 2310÷6=385
385÷6=64 (1)
∵ 1×5=5
∴385×5=[1925]
(3)[7]2310÷7=330
330÷7=47 (1)
∵1×4=4
∴330×4=[1320]
(4)[11] 2310÷11=210
210÷11=19 (1)
∵1×10=10
∴210×10=[2100]
(三)求各基础数的和
1386+1925+1320+2100=6731
(四)求最小的基准数
6731-2310×2=2111(人)
(五)求最适合条件的数X
X=2111+2310K(K为整数)
答:这队兵至少有2111人。

注:各除数应两两互质,可确保命题的真实性。

五、推导《3、5、8剩余定理)及启用
题目:一个数除以3余2;除以5余3;除以8则余1。

此数最小是多少?
摘录条件3 (2)
(基准数)(113)÷5 (3)
8 (1)
A、推导定理:只要能确定3、5、8各除数的余数均为1的基础数,便可推导出定理,随后再乘以各对应的余数,即可依此定理解题。

(一)[3、5、8]=120
(二)求各除数的余数均为1的基础数
(1)[3]120÷3=40
[40]÷3=13 (1)
(2)[5]120÷5=24 24÷5=4 (4)
∵4×4-5×3=l
∴24×4=[96]
(3)[8]120÷8=15 15÷8=1 (7)
∵7×7-8×6=1
∴15×7=[105]
由此得出《3、5、8剩余定理》诗曰:
三人同行40多,五树梅花96朵,
八仙过海105招,除百二十便解惑。

(三)分别乘以各对应的余数再求和而获解
40×2+96×3+105×l=473
(四)求最小的基准数
473-120×3=113
B、启用定理,再解两题
(一)3 (1)
(79)÷5 (4)
8 (7)
解:40×1+96×4+105×7=1159
1159-120×9=79
(二)3 (2)
(11)÷5 (1)
8 (3)
解:40×2+96×1+105×3=491
491-120×4=11
C、补充《3、4、5剩余定理》
三人同行40里,四季花开45枝,
五朵金花36浪,除去六十便得知。

3 (2)
(53)÷4 (1)
5 (3)
解:40×2+45×1+36×3=233
233-60×3=53
由此可知,“剩余问题”的“解法定理”,都是可以推得的,都是非常灵验的。

通过对“剩余问题”的研讨,使我们进一步认识了其“解法定理”,提高了解题能力,证明其解题方法可行、实用、有趣和灵活多样。

《3、5、8剩余定理》、《3、4、5剩余定理》……《a、b、c剩余定理》等“解法定理”的推导成功,证明对“剩余问题”完全可以运用“定理解题”。

中国剩余定理
数学研究所李文林袁向东
在我国古代劳动人民中,长期流传着“隔墙算”、“剪管术”、“秦王暗点兵”等数学游戏。

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


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

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

《孙子算经》卷下“物不知数”题说:有物不知其数,三个一数余二,五个一数余三,七个一数又余二,问该物总数几何?显然,这相当于求不定方程组
N=3x+2,N=5y+3,N=7x+2
的正整数解N,或用现代数论符号表示,等价于解下列的一次同余组:
N 2(mod3) 3(mod5) 2(mod7)②
《孙子算经》所给答案是N=23。

由于孙子问题数据比较简单,这个答数通过试算也可以得到。

但是《孙子算经》并不是这样做的。

“物不知数”题的术文指出解题的方法:三三数之,取数七十,与余数二相乘;五五数之,取数二十一,与余数三相乘;七七数之,取数十五,与余数二相乘。

将诸乘积相加,然后减去一百零五的倍数。

列成算式就是:
N=70×3+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,那么整数K i(i=1,2,3)的选取使所得到的三数70、21、15被相应模数相除的时候余数都是1。

由此出发,立即可以推出,在余数是R1、R2、R3的情况下,
综合以上三式又可得到
因为M=3×5×7可被它的任一因子整除,于是又有:
这里P是整数。

这就证明了《孙子算经》的公式。

应用上述推理,可以完全类似地把孙子算法推广到一般情形:设有一数N,分别被两两互素的几个数a1、a2、……a n相除得余数R1、R2、……R n,即
N≡Ri(modai)(i=1、2、……n),
只需求出一组数K i,使满足
那么适合已给一次同余组的最小正数解是
(P是整数,M=a1×a2×……×a n),这就是现代数论中著名的剩余定理。

如上所说,它的基本形式已经包含在《孙子算经》“物不知数”题的解法之中。

不过《孙子算经》没有明确地表述这个一般的定理。

孙子问题出现在公元四世纪的中国算书中,这并不是偶然的。

我国古代天文历法资料表明,一次同余问题的研究,明显地受到天文、历法需要的推动,特别是和古代历法中所谓“上元积年”的计算密切相关。

大家知道,一部历法,需要规定一个起算时间,我国古代历算家把这个起点叫做“历元”或“上元”,并且把从历元到编历年所累积的时间叫做“上元积年”。

上元积年的推算需要求解一组一次同余式。

以公元三世纪三国时期魏国施行的《景初历》做例,这部历法规定以冬至、朔旦(朔日子夜)和甲子日零时会合的时刻作为历元。

设a是一回归年日数,b是一朔望月日数,当年冬至距甲子日零时是R1日,离平朔时刻是R2日,那么《景初历》上元积元数N就是同余组
aN≡R i(mod60)≡R2(modb)
的解①。

到了南北朝时期,祖冲之《大明历》(公元462年)更要求历元必须同时是甲子年的开始,而且“日月合壁”、“五星联珠”(就是日、月、五大行星处在同一方位),月亮又恰好行经它的近地点和升交点。

这样的条件下推算上元积年,就相当于要求解十个同余式了。

天文历法数据一般又都十分庞杂,所以,在《孙子算经》成书前后的魏晋南北朝时期,我国的天文历算家无疑已经能够求解形式比《孙子算经》“物不知数”题复杂得多的一次同余式,因而必定掌握了按一定程序计算一次同余式的方法①。

《孙子算经》比例题的形式总结、反映了这一事实。

以后天文历算家长期沿用孙子算法推算上元积年,这中间肯定会引起更加深入的探讨。

到公元十三世纪,大数学家秦九韶集前法之大成,终于在一次同余式的研究上获得了超越前人的辉煌成果。

秦九韶,字道古,生活于南宋时期,自幼喜好数学,经过长期积累和苦心钻研,于公元1247年写成《数书九章》。

这部中世纪的数学杰作,在许多方面都有创造,其中求解一次同余组的“大衍求一术”和求高次方程数值解的“正负开方术”,更是具有世界意义的成就。

这里主要介绍秦九韶对一次同余论的伟大贡献。

秦九韶在《数书九章》中明确地系统地叙述了求解一次同余组的一般计算步骤。

秦的方法,正是前述的剩余定理。

我们知道,剩余定理把一般的一
的一组数K i的选定。

秦九韶给这些数起名叫“乘率”,并且在《数书九章》卷一“大衍总术”中详载了计算乘率的方法——“大衍求一术”。

为了介绍“大衍求一术”,我们以任一乘率k i的计算作例。

如果G i=
G i≡g i(moda i),
于是k i G i≡K i g i(moda i),
但是因为k i G i≡1(moda i),
所以问题归结为求k i使适合k i g i≡1(moda i)。

秦九韶把a i叫“定数”,g i 叫“奇数”,他的“大衍求一术”,用现代语言解释,实际就是把奇数g i和定数a i辗转相除,相继得商数q1、q2、……q n和余数r1、r2、……r n,在辗转相除的时候,随即算出下面右列的c值:
秦九韶指出,当r n=1而n是偶数的时候,最后得到的c n就是所求乘率k i。

如果r1=1而n是奇数,那么把r n-1和r n相除,形式上令q n+1=r n-1-1,那么余数r n+1仍旧是1,再作cn+1=q n+1C n+C n-1,这时n+1是偶数,c n+1就是所求的k i。

不论哪种情形,最后一步都出现余数1,整个计算到此终止,秦九韶因此把他的方法叫做“求一术”(至于“大衍”的意思,秦九韶本人在《数书九章》序中把它和《周易》“大衍之数”相附会)。

可以证明,秦九韶这一算法是完全正确,十分严密的式。

在秦九韶那个时代,计算仍然使用算筹。

秦九韶在一个小方盘上,右上布置奇数g,右下布置定数a,左上置1(他叫它做“天元1”),然后在右行上下交互以少除多,所得商数和左上(或下)相乘并入左下(或上),直到右上方出现1为止。

下页就是秦九韶的一般筹算图式,右边是一个数字例子(g=20,a=27,K= c4=23)。

秦九韶在《数书九章》中采集了大量例题,如“古历会积”、“积尺寻源”、“推计土功”、“程行计地”等等,广泛应用大衍求一术来解决历法、工程、赋役和军旅等实际问题。

在这些实际问题中,模数a i并不总是两两互素的整数。

秦九韶区分了“元数”(a i是整数)、“收数”(a i是小数)、“通数”(a i是分数)等不同情形,并且对每种情形给出了处理方法。

“大衍总术”把“收数”和“通数”化成“元数”的情形来计算,而对于元数不两两互素的情形,给出了可靠的程序,适当选取那些元数的因子作定数而把问题归结为两两互素的情形①。

所有这些系统的理论,周密的考虑,即使以今天的眼光看来也很不简单,充分显示了秦九韶高超的数学水平和计算技巧。

秦九韶小时曾跟随他父亲到南宋京城杭州,向太史局(主管天
天元奇g i1,20
定a i27
1,g i1,20
c1=q1,r21,7
(q1)
(q2)
c2=c1q2+1,r23,6
c1,r11,7
c n-2,r n-23,6
c n-1=c n-2q n-1+c n-3,r n-14,1
(q n-1)
(q n)
c n=c n-1q n+c n-2, 1 23,1
c n-1,r n-14,1
文历法的机构)的官员学习天文历法,“大衍求一术”很可能就是他总结天文历法计算上元积年方法的结果。

但是“大衍求一术”似乎没有为他同时代的人所充分理解。

明中叶以后几乎失传。

一直到清代,“大衍求一术”又重新被发掘出来,引起了许多学者(张敦仁、李锐、骆腾凤、黄宗宪等)的兴趣。

他们对“大衍求一术”进行了解释、改进和简化,其中黄宗宪《求一术通解》对模数非两两互素的情形给出了更加简明的方法,但是时代已是晚清。

从《孙子算经》“物不知数”题到秦九韶的“大衍求一术”,我国古代数学家对一次同余式的研究,不仅在中国数学史上而且在世界数学史上占有光荣的地位。

在欧洲,最早接触一次同余式的,是和秦九韶同时代的意大利数学家裴波那契(1170—1250),他在《算法之书》中给出了两个一次同余问题,但是没有一般的算法。

这两个问题从形式到数据都和孙子物不知数题相仿,整个水平没有超
过《孙子算经》。

直到十八、十九世纪,大数学家欧拉(1707—1783)于公元1743年、高斯(1777—1855)于公元1801年对一般一次同余式进行了详细研究,才重新获得和秦九韶“大衍求一术”相同的定理,并且对模数两两互素的情形给出了严格证明。

欧拉和高斯事先并不知道中国人的工作。

公元1852年英国传教士伟烈亚力(1815—1887)发表《中国科学摘记》,介绍了《孙子算经》物不知数题和秦九韶的解法,引起了欧洲学者的重视。

1876年,德国马蒂生(1830—1906)首先指出孙子问题的解法和高斯方法一致,当时德国著名数学史家康托(1829—1920)看到马蒂生的文章以后,高度评价了“大衍术”,并且称赞发现这一方法的中国数学家是“最幸运的天才”。

直到今天,“大衍求一术”仍然引起西方数学史家浓厚的研究兴趣。

如1973年,美国出版的一部数学史专著《十三世纪的中国数学》中,系统介绍了中国学者在一次同余论方面的成就,作者力勃雷希(比利时人)在评论秦九韶的贡献的时候说道:“秦九韶在不定分析方面的著作时代颇早,考虑到这一点,我们就会看到,萨顿②称秦九韶为‘他那个民族、他那个时代、并且确实也是所有时代最伟大的数学家之一’,是毫不夸张的。


印度学者对一次同余论也有过重要贡献。

从公元六世纪到十二世纪,他们发展了一种称为“库塔卡”的算法,用来求解和一次同余式等价的不定方程组。

“库塔卡”法出现在孙子算法之后,印度数学家婆罗门笈多(七世纪)、摩柯吠罗(九世纪)等人的著作中,都有和物不知数题相同的一次同余问题。

这当然不是要借此断言“库塔卡”法一定受到了孙子算法的影响,但是有人(如万海依等)硬说中国的“大衍求一术”来源于“库塔卡”,就是毫无根据的妄说了。

万海依居然把中国算法中数码从左到右横写作为“大衍术”受印度影响的重要根据。

大家知道,中国古代至迟从春秋战国时期就开始使用算筹记数,我们今天还可以从现存的公元前三世纪的货币上看到这种从左到右的记数方法。

由此可见,万海依的论点多么荒唐可笑。

中国古代数学家对一次同余论的研究有明显的独创性和继承性,“大衍求一术”在世界数学史上的崇高地位是毋容置疑的,正因为这样,在西方数学史著作中,一直公正地称求解一次同余组的剩余定理为“中国剩余定理”。

①“孙子歌”又名“韩信点兵”,载于明程大位《算法统宗》(公元1592年),但是实际上在这以前早已流传民间。

①按历元的定义,从历元到当年冬至,恰好经过N个回归年,合a×N日。

甲子纪日,以甲子为首60日一周期,所以60除aN,余数应该是当年冬至离最近一个甲子日的日数,这就得到同余式aN≡R1(mod60)。

按同样道理可以得出第二个同余式。

①积年的方法,原来开始于汉代。

但是由于汉代天文历法家利用了当时天文观测的特殊数据,他们推算
上元积年,只要解一二个数据不太复杂的一次同余式。

例如可以验证,《三统历》(公元前一世纪)的上元积年满足形如145×4617×p≡135(mod 1728)(P是整数,积年数x=4617×p)
式。

这样的同余式是通过试算就可以得到答案的。

从公元三世纪开始,随着天文测量技术的提高,对历法提出更精密的要求来,这时推算上元积年的同余式越来越复杂,这就促使当时的天文历算家去寻求一次同余式的一般计算方法。

①事实上,设l2=q2,L3=q3L2+1,L4=q4L3+L2,……Ln=qnln-1+ln-2,那么r1=ai-giq1=ai-c1g i, r2=gi-r1q2=gi-(ai-c1gi)q2=c2g4-l2a4,r3=r1-r2g4=(ai-c1gi)-(c2gi-l2ai)q3=l3ai-c3gi,…………当rn=1并且n是偶数的时候(根据正文所说,总可以把n是奇数情形化作偶数情形来处理),显然有rn -1=lI-1;rn=cngi-liai=1,就是cngi(modai)。

这就证明了Cn就是所求的K3。

②秦九韶采用的方法是在那些元数ai中约去适当的公因子,从而对每个元数求得一个因子ti,使得m=t1×t2×……×tn是那些ai的最小公倍数,而且各个ti两两互素,然后以这些ti为定数,按大衍求一术计算相应的ki。

相关文档
最新文档