Sun Tzu Theorem

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

孙子定理,传自于公元五百年左右的《孙子算经》。

历史上流传着一个汉代名将韩信点兵的故事,就曾使用孙子定理来确定士兵的准确人数。韩信在操练士兵的时候,只要让部下先后按 “从1至3” “从1至5” “从1至7”的顺序报数,然后再报告每次报数的余数,他就知道军中一共有多少人了。

当时的帝王刘邦见状,认为韩信的本领很大,恐他将来功高盖主,心理想着如何除掉他,表面上却假装笑脸夸奖他,问他怎样算的士兵人数。韩信回答说:“臣幼得黄石公传授《孙子算经》,这孙子乃鬼谷子的弟子,算经中载有此题之算法,口诀是: 三人同行七十稀, 五树梅花廿一枝, 七子团圆正月半, 除百零五便得知。”

这个口诀用现代白话文解释,它的意思是:先用总数除以3,得到的余数乘以70;再用总数除以5,得到的余数乘以21;然后用总数除以7,得到的余数乘以15。三个数值相加后,再加减105的倍数,就可以得到所求的数值。

由此推算,假设韩信将军操练的士兵有400余人,若3人报数余1人,5人报数余2人,7人报数余3人,则算式是:70X1+21X2+15X3+nX105,由于士兵人数介于400与500之间,则n=3, 进而推算出士兵人数为472人。

古人的“有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何? ” 这类的数学题虽千变万化,却万变不离其中,无论是数人数、数豆子、数糖果、数玩具,都是相同道理。 中国古代有很多数学成就至今依然值得人们去探索与研究。本地学生恐怕鲜少知道,中国宋朝的数学家秦九韶于1247年著的《数书九章》一书中,早就对“物不知数”问题做出了完整系统的解答, 并把解法称之为“大衍求一术”,这个解法传到西方后,被称为“孙子定理”或“中国剩余定理”,这不仅在世界数学历史上占有一席之地,也成为世界研究数学留下玄机奥秘。

譬如中国古代在没有计算机的情况下,如何推算“上元积年”之日月合壁、五星连珠的起算时刻?在满足日、月、金木水火土五大行星各自的起点以及同时汇聚甲子年冬至节气这九项条件的同时,如何求解? 西汉末年刘歆《太初历》 太极上元到太初元年(公元前104年)为143127年;南朝的祖冲之《大明历》中记载的五星公转周期及角度与现代观测数值微差到万分之一,而祖氏公理“幕势既同,则积不容异” 更是微积分学不可缺少的一步;但是到唐代一行的《大衍历》中的上元积年数字是96,961,740年,古代数学家是如何推算的,后人却不得而知……

以人为鉴,可以明得失;以史为鉴,可以知兴替 。当年的韩信帮刘邦打败了项羽,也帮刘邦稳固了江山,但最终却被吕后设计给害死了,还被诬以谋反的罪名,万分冤屈地死在吕后与萧何设计的竹签之下。刘邦死后,吕后专权,其二兄掌兵权连刘邦宠妃的儿孙也残害,最终吕氏被吓死,其家族无论长幼满门抄斩……

所幸韩信的被害成为后世英雄豪杰的镜鉴,他所传承的孙子定理被永远流传开来,未被埋没,“韩信点兵”问题也成为中国历史上著名的数学问题, 在现代各种考试中也经常会以各种方式出现。