请输入您要查询的百科知识:

 

词条 鬼谷算法
释义

“鬼谷算法”是《孙子算经》上有名的“孙子问题”(又称“物不知数题”)编写而成的。自从《孙子算法》中提出这个“物不知数”问题之后,他便引起了人们很大的兴趣。南宋数学家秦九韶对此加以推广,又发现一种新的解法,叫“大衍求一术”。

中文名:鬼谷算法

引源:《孙子算经》

基本介绍:鬼谷子

推广:“大衍求一术”

基本信息

汉高祖刘邦曾问大将韩信:“你看我能带多少兵?”韩信斜了刘邦一眼说:“你顶多能带十万兵吧!”汉高祖心中有三分不悦,心想:你竟敢小看我!“那你呢?”韩信傲气十足地说:“我呀,当然是多多益善啰!”刘邦心中又添了三分不高兴,勉强说:“将军如此大才,我很佩服。现在,我有一个小小的问题向将军请教,凭将军的大才,答起来一定不费吹灰之力的。”韩信满不在乎地说:“可以可以。”刘邦狡黠地一笑,传令叫来一小队士兵隔墙站队,刘邦发令:“每三人站成一排。”队站好后,小队长进来报告:“最后一排只有二人。”“刘邦又传令:“每五人站成一排。”小队长报告:“最后一排只有三人。”刘邦再传令:“每七人站成一排。”小队长报告:“最后一排只有二人。”刘邦转脸问韩信:“敢问将军,这队士兵有多少人?”韩信脱口而出:“二十三人。”刘邦大惊,心中的不快已增至十分,心想:“此人本事太大,我得想法找个岔子把他杀掉,免生后患。”一面则佯装笑脸夸了几句,并问:“你是怎样算的?”韩信说:“臣幼得黄石公传授《孙子算经》,这孙子乃鬼谷子的弟子,算经中载有此题之算法。”

基本介绍

鬼谷子,姓王名诩(或利),又名王禅,号玄微子,春秋末战国初时人。祖籍朝歌(今河南省淇县)城南,出生于河北省临漳县香菜营乡盐食村,童年生活在河北省临漳县香菜营乡谷子村,两村是近邻。盐食村古代叫王家庄。“王禅老祖”是后人对鬼谷子的称呼,是先秦诸子之一。鬼谷子为纵横鼻祖(其实也是兵家的著名代表人物之一),苏秦与张仪为其最杰出的两个弟子(见《战国策》)。另有孙膑与庞涓亦为其弟子之说(见《孙庞演义》)。 他通天彻地,兼顾数家学问,人不能及。一是神学:日星象纬,占卜八卦,预算世故,十分精确;二是兵学,六韬三略,变化无穷,布阵行军,鬼神莫测;三是游学,广记多闻,明理审势,出口成章,万人难当;四是出世学,修身养性,祛病延寿,学究精深。

“鬼谷算”是《孙子算经》上有名的“孙子问题”(又称“物不知数题”)编写而成的。原来的题目是:

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

用通俗的话来说,题目的意思就是

有一些物品,不知道有多少个,只知道将它们三个三个地数,会剩下2个;五个五个地数,会剩下3个;七个七个地数,也会剩下2个。这些物品的数量至少是多少个?

(注:诗题及题目原文都无“至少”二字,但“孙子问题”都是些求“最少”或者求“至少”的问题,否则就会有无数多个答案。所以,解释题目意思时,在语句中加上了“至少”二字。)

《孙子算经》解这道题目的“术文”和答案是:

“三三数之剩二,置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十。并之,得二百三十三,以二百十减之,即得。”“答曰:二十三。”

这些话是什么意思呢?用通俗的话来说,就是:

先求被3除余2,并能同时被5、7整除的数,这样的数最小是140;

再求被5除余3,并能同时被3、7整除的数,这样的数最小是63;

然后求被7除余2,并能同时被3、5整除的数,这样的数最小是30。

于是,由140+63+30=233,得到的233就是一个所要求得的数。但这个数并不是最小的。

再用求得的“233”减去或者加上3、5、7的最小公倍数“105”的倍数,就得到许许多多这样的数:

{23,128,233,338,443,…}

从而可知,23、128、233、338、443、…都是这一道题目的解,而其中最小的解是23。

答:这些物品的数目至少是23个。

需要指出的是,在《孙子算经》上,有一段关于这类题目的解题“术文”:

“凡三三数之剩一则置七十,五五数之剩一则置二十一,七七数之剩一则置十五,一百六以上以一百五减之,即得。”

(注:古称“106”和“105”为“一百六”和“一百五”,而称“160”和“150”为“一百六十”和“一百五十”。所以,这里的“一百六”和“一百五”分别指“106”和“105”,而不是“160”和“150”。)

明代著名的大数学家程大位,在他所著的《算法统宗》中,对于这种解一般“孙子问题”的方法,还编出了四句歌诀,名曰《孙子歌》:

三人同行七十稀,

五树梅花廿一枝;

七子团圆正半月,

除百零五便得知。

歌中的“廿”,读音与“念”音相同。“廿”即二十的意思。

这一歌诀的“诗意”,我们可以不去理会,只需注意它的数字就行了。歌诀中的每一句话,都指出了一步解题方法:

“三(3)人同行七十(70)稀”——是说除以3所得的余数,要用“70”去乘它;

“五(5)树梅花廿一(21)枝”——是说除以5所得的余数,要用“21”去乘它;

“七(7)子团圆正半月(15)”——“半月”是一个月30天的一半,即15日,这是说,除以 7所得的余数,要用“ 15”去乘它;

“除百零五(105)便得知”——这是说要把上面所乘得的三个数相加,加得的和如果大于105,便应减去105,或者减去105的倍数。这也就是《孙子算经》上的“一百六(106)以上,以一百五(105)减之”。这样得出的差,便是所要求的这个最小的未知数了。

运用这一歌诀来解答这道“物不知数”问题,便是

2×70+3×21+2×15=140+63+30=233

233-105-105=23(答略)

不过,用这种方法解这类问题,有它的局限性,它只能解答用3、5、7作除数的题目,遇到用其他数作除数的算题,它就行不通了。这一点必须引起我们的注意。

鬼谷算法的推广

若某个数X分别被d1,d2,d3,、、、、、、,dn除得的余数分别为r1,r2,r3,、、、、、、,rn,则可表示为下式:

X=R1r1+R2r2+R3r3+、、、、、、+Rnrn-RD

其中R1是d2,d3,、、、、、、,dn的公倍数,而且被d1除,余数为1;

R2是d1,d3,、、、、、、,dn的公倍数,而且被d2除,余数为1;

R3是d1,d2,、、、、、、,dn的公倍数,而且被d3除,余数为1;

。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Rn是d1,d2,、、、、、、,dn-1的公倍数,而且被dn除,余数为1;

D是d1,d2,d3,、、、、、、,dn的最小公倍数;

R是任意正整数,可以根据实际需要决定;

而且d1,d2,d3,、、、、、、,dn必须是互质的,以保证每个Ri(i=1、2、3,、、、,n)都能求得。

自从《孙子算法》中提出这个“物不知数”问题之后,他便引起了人们很大的兴趣。南宋数学家秦九韶对此加以推广,又发现一种新的解法,叫“大衍求一术”。这种解法后来传入欧洲,欧洲学者发现此解法和高斯的解法基本一致,但比高斯早了500余年。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 14:05:27