感觉很有趣~
很早以前就知道了“韩信点兵,多多益善”这句俗语,但真正理解这句话的意思,却是在半年前上的⼀门课程(应⽤密码学)中。在这⾥⾸先介绍下搜集到的历史背景,之后是具体算法,最后是我的理解。
秦朝末年,楚汉相争。⼀次,韩信将1500名将⼠与楚王⼤将李锋交战。苦战⼀场,楚军不敌,败退回营,汉军也死伤四五百⼈,于是韩信整顿兵马也返回⼤本营。当⾏⾄⼀⼭坡,忽有后军来报,说有楚军骑兵追来。只见远⽅尘⼟飞扬,杀声震天。汉军本来已⼗分疲惫,这时队伍⼤哗。韩信兵马到坡顶,见来敌不⾜五百骑,便急速点兵迎敌。他命令⼠兵3⼈⼀排,结果多出2名;接着命令⼠兵5⼈⼀排,结果多出3名;他⼜命令⼠兵7⼈⼀排,结果⼜多出2名。韩信马上向将⼠们宣布:我军有1073名勇⼠,敌⼈不⾜五百,我们居⾼临下,以众击寡,⼀定能打败敌⼈。汉军本来就信服⾃⼰的统帅,这⼀来更相信韩信是“神仙下凡”、“神机妙算”。于是⼠⽓⼤振。⼀时间旌旗摇动,⿎声喧天,汉军步步进逼,楚军乱作⼀团。交战不久,楚军⼤败⽽逃。
中国有⼀本数学古书「孙⼦算经」也有类似的问题:「今有物,不知其数,三三数之,剩⼆,五五数之,剩三,七七数之,剩⼆,问物⼏何?」
答⽈:「⼆⼗三」
术⽈:「三三数之剩⼆,置⼀百四⼗,五五数之剩三,置六⼗三,七七数之剩⼆,置三⼗,并之,得⼆百三⼗三,以⼆百⼀⼗减之,即得。凡三三数之剩⼀,则置七⼗,五五数之剩⼀,则置⼆⼗⼀,七七数之剩⼀,则置⼗五,即得。」
这个问题的推⼴及其解法,被称为孙⼦定理,也称为中国剩余定理,是中国古代求解⼀次同余式组的⽅法,是数论中的⼀个重要定理。中国剩余定理(ChineseRemainder Theorem)在近代抽象代数学中占有⼀席⾮常重要的地位,也可⽤于RSA算法中的快速计算。
秦九韶在《数书九章》中明确地系统地叙述了求解⼀次同余组的⼀般计算步骤。秦的⽅法正是前述的剩余定理。我们知道,剩余定理把⼀般的⼀次同余问题归结为满⾜条件的⼀组数Ki的选定。秦九韶给这些数起名叫“乘率”,并且在《数书九章》卷⼀“⼤衍总术”中详载了计算乘率的⽅法——“⼤衍求⼀术”。
我国明朝有位⼤数学家叫程⼤位,他在解答“物不知其数”问题(即:今有物不知其数,三三数之剩⼆,五五数之剩三,七七数之剩⼆,问物⼏何?)⽤四句诗概括这类问题的解决:
“三⼈同⾏七⼗稀,五树梅花廿⼀枝,七⼦团圆正半⽉,除百零五便得知。”
-----------------算法:
以求解“物不知其数”为例。
最后想说⼀下通过听这位⽼师的课程所领会的思想。
孙⼦定理的背后,蕴含了分类的思想。同余⽅程组,类似于把⼀个⼀维的数再次分为多维。分类,是⼈类知识原理,⼀切研究都离不开分类。(⽼师所说)
⼈⽣的每个阶段都可以看做⼀个维度,⽽不同阶段的结合,则构成了现在的⾃⼰(思想、成就等)。⽽我们要做的,是让整个空间更⼤。好⽐⽤尺⼦去量⼀个东西,如果这个东西很长,⽤尺⼦的⼈会很痛苦,要么意识到⾃⼰的有限性,要么想办法去增长⾃⼰的尺⼦。⽽东西,可以认为是理想。⽽⼈⽣的每个阶段,可以认为是模数,模数的乘积,决定了⾃⼰当前的空间。⽽这需要前瞻性,在前瞻性不够的情况下,需要有⼀位⼈⽣导师存在来指引,但这⼜是可遇⽽不可求的,若是遇到,⼀定要珍惜。
⼜好⽐看⼭,“横看成岭侧成峰,远近⾼低各不同”。若想对⼭有⼀个完整的认识,需要多维度的视⾓,横看、侧看、远看、近看、⾼看、低看。
还产⽣了⼀种设想。以城市规划为例,⼀个规划师把规划的理念完全理解(深度,专业化),之后如果有公益的意识,很有可能成为类似于如何改变世界(⼀本书的名字)那样的⼈的(⼴度),他可以通过⾃⼰的知识来使⼈们的⽣活更好。若⼲年后,他若是可以意识到该放⼿去做别的事情时,他的贡献将会更⼤。这时,将会是更⼴阔的天地,这时需要的能⼒,如何识⼈,找到领域最强者,并且引导,或者说,这时可以是⼀个导师的⾓⾊了,去给只会做事并且可以把事做的很好的⼈加⼊思想或者理念上的东西,推动这样的⼈在⾃⼰领域做的事影响更多
的⼈(改变世界)。
还有⼀种思路是把⾃⼰培养成发现这样的⼈的⼈。类似于如何改变世界中的那个组织的领袖。
在成长的过程中,思想和⾏动是相辅相成的,若是只有⾏动,可能得到的只是物质上的满⾜,⼈会很空虚;若是只有思想,⼜会不断地被现实所打击。最好的境界是既有发⼼,⼜能把事做好。
还要认识到,⼈与⼈是不同的,上⾯的思考基于如何成为最优秀的⼈。不要期待每个⼈都是可以改变世界的那个⼈,改变世界的⼈也需要很多的⼈来⽀持的,能够有意识地把⼀个⼈引导到他的平衡点,已经⾜够了。
看⼀个⼈,要看他的成长历程。在⾃⼰还能够掌控的成长阶段,有意识地去增⼤⾃⼰当前维度的长度,终有⼀天,⾃⼰也会变得很强⼤。
因篇幅问题不能全部显示,请点此查看更多更全内容