孙子经学的社会影响
“三人走七十回,五树二十一棍。
七子团聚半个月,到105年才知道。"
这些有趣的数学游戏,以各种形式介绍了世界著名的“孙子问题”的解决方法,通俗地反映了汉族古代数学的一项杰出成就。“孙子问题”是现代数论中的一次同余问题,最早出现在公元四世纪孙子的数学经典中。《孙子算经》书名《物不明》说:有不明之物,三算二多,五算三多,七算二多。东西的总数是多少?显然,这相当于解不定方程。
N=3x+2,N=5y+3,N=7z+2
n的正整数解,或者用现代数论符号表示,等价于求解以下线性同余组。
n = 2(mod 3);n = 3(mod 5);N=2(模式7)
孙子的计算中给出的答案是N=23。因为孙子的问题数据比较简单,所以这个答案也可以通过试算得到。但孙子的计算没有做到这一点。“不知数事”的技巧指出,解题有三三种方法,取数70,乘以余数2;五个或五个数字中,取数字二十一,乘以余数三;对于77这个数,用15乘以余数2。把乘积加起来,然后减去105的倍数。列进公式是:
n = 70×2+21×3+15×2-2×105 = 23 .
这里105是模3、模5、模7的最小公倍数。很容易看出孙子算经给出了满足条件的最小正整数。对于一般余数的情况,《孙子兵法》指出只需将上述算法中的余数2、3、2分别替换为新的即可。用R1,R2,R3来表示这些余数,孙子算经相当于给了一个公式。
n = 70×r 1+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除以相应的模数。由此,我们可以立即推导出余数为R1,R2,R3时的情况。
应用上面的推理,孙子的算法可以完全类似于一般情况:有一个数n,被两两互质数a1,a2,...安获得余数R1,R2、...……Rn,也就是。
N≡Ri(mod ai)(i=1、2、……n),
只需要一组数k来满足
1(mod ai)(i=1、2、……n),
那么适合于给定同余群的最小正解是
(p为整数,m = a1× a2× …× an),
这就是现代数论中著名的余数定理。如前所述,它的基本形式已经包含在《孙子兵法》“不知数物”问题的解决中。但是,这个普遍定理在《孙子算经》中并没有说清楚。
孙子问题出现在4世纪中国的计算中并非偶然。从我国古代天文历法的资料来看,同余的研究显然是天文学和历法的需要推动的,尤其与古代历法中所谓“上元积年”的计算密切相关。众所周知,日历需要指定开始时间。中国古代历法数学家把这个起点称为“纪元”或“上元”,把从纪元到历年的累计时间称为“上元纪年”。上元累计年数的计算需要解一组一次同余。以公元三世纪三国时期魏推行的荆为例。这种历法规定,冬季至日、新月(新月的午夜)和甲子在零时相遇的时间为纪元。设A为回归年的天数,B为农历正月的天数,当冬季至日为甲子日R1,平朔时为R2日,则荆楚历法中的元素个数n为同余组的解。
安里(60型)R2(b型)
南北朝时,祖冲之《大李明》(公元462年)要求纪元同时为甲子年始,月亮要经过其近地点和升交点。在这样的条件下,计算最后一个元素累积年份相当于求十次同余的解。天文历数据一般都很复杂。所以在《孙子算经》这本书前后的魏晋南北朝时期,中国的天文历法计算器无疑能够解出一个比《孙子算经》中“事不明”的问题复杂得多的同余式,所以他们一定掌握了按照一定的程序计算一个同余式的方法。这一事实在《孙子算经》中以比例问题的形式进行了概括和反映。未来天文学家将长期使用孙子的算法计算上元累积年,这必将引发更深入的讨论。到了13世纪,伟大的数学家秦终于在同余的研究上取得了辉煌的成果。
秦·九韶,字子古,生活在南宋。他从小就喜欢数学。经过长期的积累和潜心研究,他于公元1247年写了《舒舒九章》。这部中世纪的数学杰作是在多方面创造的。其中“求解一个同余组的大求导”和求解高次方程数值解的“正负平方抽取”更是国际上意义重大的成果。
本文主要介绍秦对同余理论的重大贡献。
秦在《舒舒九章》中清晰而系统地描述了如何解一次同余组。
的一般计算步骤。秦的方法正是前面提到的余数定理。我们知道,留数定理把一般的一阶同余问题归结为选择一组满足条件的数Ki。秦将这些数命名为“乘率”,并在《九书》卷一中详细介绍了乘率的计算方法——“大绕求法”。
为了介绍“以大拓求一技之长”的技巧,我们以任意倍率ki的计算为例。如果Gi = & gt秦首先用Ai除以GI得到余数Gi
gi gi(mod ai),
所以kiGi kiGi(mod ai),
但是因为kiGi 1(mod ai),
所以问题归结为让ki适合kigi≡1(mod ai)。秦称艾为“定数”,称吉为“奇数”。他的“大推导求一技之长”的理论,用现代语言解释。其实就是把奇数gi和定数ai相除,先后得到商q1,q2,...……qn和余数r1,r2,...……rn。当奇数GI和定数AI相除时,会立即相除。
秦指出,当rn=1,n为偶数时,最终cn为所需的倍增率ki。若rn=1,n为奇数,将rn-1与rn相除,形式上设qn+1 = RN-1,则余数rn+1仍为1,再作CN+。无论哪种情况,余数1都出现在最后一步,整个计算到此结束。所以秦把他的方法称为“求一技”(至于“大衍”的含义,秦自己在《九章》的序言中,把它附在《周易》的“大衍之数”上)。可以证明秦的算法是完全正的。所有这些系统的理论和周密考虑即使在今天看来也不简单,这充分显示了秦高超的数学水平和计算技巧。秦小时候跟随父亲到了南宋都城杭州,到了太史公府(掌管天,管得很严。
在秦的时代,算计还是用算计。在一个小方盘上,秦把奇数G排在右上角,定数A排在右下角,1排在左上角(他称之为“天元1”),然后在右排上下互动,把少除以多。得到的商乘以左上角(或底部)合并到左下角(或顶部),直到右上角出现1。下一页是秦的通用计算图式,右边是一个数值例子(g=20,a=27,K=C4=23)。
秦在《舒舒九章》中收集了大量的事例,如"古历必积"、"依规求源"、"计土工"、"计地工"等,并广泛运用"一技之长"的手法解决历法、工程、税收、兵役等实际问题。在这些实际问题中,模ai不总是成对互质整数。秦区分了“一元数”(ai为整数)、“收到数”(ai为小数)、“通过数”(ai为分数)等不同情况,并给出了每种情况的处理方法。“总计法”计算了“收到数”和“一般数”转化为“元素”的情况,但对于元素不是两两互质的情况,给出了可靠的程序,适当选取那些元素的因子为常数,将问题化为两两互质。
文历学会官员研究天文历法,“大推求一技之长”大概是他总结天文历法累积年数计算方法的结果。但“大发展求一技之长”似乎并没有被他同时代的人完全理解。明中叶以后几乎失传。直到清代,“大衍求一术”的理论被重新发现,引起了许多学者的兴趣(张敦仁、李锐、罗、黄宗宪等。).他们对“以大拓求术”的理论进行了解释、改进和简化,其中黄宗宪的《以通解求术》对于模数不是两两的情况给出了更为简洁的方法,但时代在晚清。
从孙子计算中的“不知数多少”到秦的“推而广之”,汉代数学家对一个同余式的研究不仅在中国数学史上,而且在世界数学史上都占有光辉的地位。在欧洲,与秦同时代的意大利数学家佩波纳奇(1170-1250)最早接触到第一个同余公式。他在《算法之书》中给出了两个一次同余问题,但没有通用算法。这两个问题在形式和数据上和孙子的问题差不多,整体水平没有超过孙子的计算。直到18、19世纪,大数学家欧拉(1707-1783)和高斯(1777-1855)在1801中也做了同样的比较。欧拉和高斯事先并不知道中国的工作。1815—1887年英国传教士(1852)出版了《中国科学札记》,介绍了孙子计算中的未知问题和秦的解法,引起了欧洲学者的注意。1876年,德国人马西森(1830-1906)首先指出孙子问题的解法与高斯法是一致的。当时德国著名的数学史家康托尔(1829-1920)看到马西森的文章后,对《大衍术》给予了高度评价。时至今日,“大拓求术”的理论仍然引起西方数学史家的浓厚研究兴趣。比如1973,美国出版的一部数学史专著《十三世纪的中国数学》,系统地介绍了中国学者在一个同余理论上的成就。在评论秦的贡献时,作者利布雷希特(比利时人)说:“秦关于不定分析的著作是相当早的。考虑到这一点,我们会看到萨顿称秦为的“他的民族,他的那个”。
印度学者也对同余理论做出了重要贡献。从6世纪到12世纪,他们开发了一种叫做“Kutaka”的算法,用于求解相当于一个线性同余的不定方程。“Kutaka”法出现在孙子算法之后。在印度数学家婆罗门伏多(七世纪)、莫克维罗(九世纪)等人的著作中,有一个同余问题,与未知数的问题相同。这当然不是断言Kutaka法一定受孙子算法的影响,而是有些人(如万海依等。)硬说中国的“从大发展中求一技之长”出自Kutaka,是没有根据的。万海依居然把中国算法中的数字从左向右横着写,作为印度人影响《大衍书》的重要依据。众所周知,中国在古代最迟从春秋战国时期就开始使用计数和计数。今天,我们还可以从现存的公元前三世纪的货币上看到这种从左到右的计数方法。由此可见,万海义的说法是多么可笑。中国古代数学家在一个同余理论的研究上有明显的独创性和继承性。“推而广之求一技之长”在世界数学史上的崇高地位毋庸置疑。正因为如此,在西方数学史著作中,求解一个同余组的剩余定理被理所当然地称为“中国剩余定理”。在中国古代算术书籍中,《孙子算经》在中国数学史上一直占据着重要地位,其中不乏“余技不足”、“荡杯”等有趣而巧妙的算术程序。
孙子的计算。第二卷第17题描述了著名的“甩杯”节目。标题是这样的:“今天有一个女人在河上摇着杯子。李晶问,“为什么有这么多杯子?”女人说:‘有客人。’李晶说,‘客几何是什么?’女人说,‘两个人分一顿饭,三个人分一个汤,四个人分肉,每个人用一杯65。不知道嘉宾几何?"
很明显,这里告诉我们的是65碗的人数。其中,可以了解客人数量的信息是两个人分一碗饭,三个人分一碗汤,四个人分一碗肉。通过这些数值,自然就解决了乘客数量的问题。因为乘客数是固定值,所以列为N/2+N/3+N/4=65,很容易得到60个乘客。
这个问题的解法和今天的解法一模一样,可以用“技法说:取65个杯子,乘以12,得780,除以13”来证明。