韩信点兵歇后语的故事及算法
玩过英雄杀的小伙伴们都知道,韩信在摸牌的时候都会说上一句:“多多益善”。其实这就歇后语的后半句:“韩信点兵——多多益善”。当然,每一个歇后语后面都有着一个历史典故。韩信点兵的典故是汉高祖与韩信的一次对话中得出来的。
韩信作为中国历史上杰出的军事家,曾为刘邦建立汉室王朝立下了汗马功劳。
有一回,汉高祖刘邦在与韩信闲谈的时候,议论朝中将领的军事才能。在他俩看来,那些将军无论在沙场征战,还是出谋划策,都各有长处或短处。
到后来,刘邦问韩信:“你看我能带多少兵?
韩信斜了刘邦一眼说:“你顶多能带十万兵吧!
汉高祖心中有三分不悦,心想:你竟敢小看我!“那你呢?”
韩信傲气十足地说:“我呀,当然是多多益善啰!
刘邦心中又添了三分不高兴,勉强说:“将军如此大才,我很佩服。现在,我有一个小小的问题向将军请教,凭将军的大才,答起来一定不费吹灰之力的。”
韩信满不在乎地说:“可以可以。”
刘邦狡黠地一笑,传令叫来一小队士兵隔墙站队,刘邦发令:“每三人站成一排。”
队站好后,小队长进来报告:“最后一排只有二人。”
刘邦又传令:“每五人站成一排。”
小队长报告:“最后一排只有三人。”
刘邦再传令:“每七人站成一排。”
小队长报告:“最后一排只有二人。”
刘邦转脸问韩信:“敢问将军,这队士兵有多少人?”
韩信脱口而出:“二十三人。”
刘邦大惊,一面则佯装笑脸夸了几句,并问:“你是怎样算的?”
韩信说:“臣幼得黄石公传授《孙子算经》
刘邦心中的不快已增至十分。韩信从刘邦笑的神态中观察,猛然悟出了自己无意中刺伤了皇帝的虚荣心。他赶忙巧妙地回答说:“陛下不善于带兵,却擅长指挥将领,这就是我始终在你手下的原因。况且您是真龙天子,受命于天,哪是我们这些人所能比拟的?”刘邦又笑了,这次是满意的笑。
《孙子算经》,这孙子乃鬼谷子的弟子,算经中载有此题之算法,口诀是:
三人同行七十稀,
五树梅花开一枝,
七子团圆正月半,
除百零五便得知。”
刘邦出的这道题,可用现代语言这样表述:
“一个正整数,被3除时余2,被5除时余3,被7除时余2,如果这数不超过100,求这个数。”
《孙子算经》中给出这类问题的解法:“三三数之剩二,则置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十;并之得二百三十三,以二百一十减之,即得。凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五,一百六以上,以一百五减之,即得。”用现代语言说明这个解法就是:
首先找出能被5与7整除而被3除余1的数70,被3与7整除而被5除余1的数21,被3与5整除而被7除余1的数15。
所求数被3除余2,则取数70×2=140,140是被5与7整除而被3除余2的数。
所求数被5除余3,则取数21×3=63,63是被3与7整除而被5除余3的数。
所求数被7除余2,则取数15×2=30,30是被3与5整除而被7除余2的数。
又,140+63+30=233,由于63与30都能被3整除,故233与140这两数被3除的余数相同,都是余2,同理233与63这两数被5除的余数相同,都是3,233与30被7除的余数相同,都是2。所以233是满足题目要求的一个数。
而3、5、7的最小公倍数是105,故233加减105的整数倍后被3、5、7除的余数不会变,从而所得的数都能满足题目的要求。由于所求仅是一小队士兵的人数,这意味着人数不超过100,所以用233减去105的2倍得23即是所求。
这个算法在我国有许多名称,如“韩信点兵”,“鬼谷算”,“隔墙算”,“剪管术”,“神奇妙算”等等,题目与解法都载于我国古代重要的数学著作《孙子算经》中。一般认为这是三国或晋时的著作,比刘邦生活的年代要晚近五百年,算法口诀诗则载于明朝程大位的《算法统宗》,诗中数字隐含的口诀前面已经解释了。宋朝的数学家秦九韶把这个问题推广,并把解法称之为“大衍求一术”,这个解法传到西方后,被称为“孙子定理”或“中国剩余定理”。
不过最后由于韩信过于的强大,已经脱离了汉高祖刘邦的控制,且意图不轨,最终别刘邦一干人等算计而死。