韩信点兵算法流程图韩信点兵是一个有趣的猜数游戏。如果你随便拿一把蚕豆(数目约在100粒左右),先3粒3粒地数,直到不满3粒时,把余数记下来;第二次再5粒5粒地数,最后把余数记下来;第三次是7粒一数,把余数记下来。然后根据每次的余数,就可以知道你原来拿了多少粒蚕豆了。不信的话,你还可以试验一下。例如,假如3粒一数余1粒,5粒一数余2粒,7粒一数余2粒,那么,原有蚕豆有多少粒呢? 这类题目看起来是很难计算的,可是我国古时候却流传着一种算法,名称也很多,宋朝周密叫它“鬼谷算”,又名“隔墙算”;杨辉叫它“剪管术”;而比较通行的名称是“韩信点兵”。最初记述这类算法的是一本名叫《孙子算经》的书,后来在宋朝经过数学家秦九韶的推广,又发现了一种算法,叫做“大衍求一术”。这在数学史上是极有名的问题,外国人一般把它称为“中国剩余定理”。至于它的算法,在《孙子算经》上就已经有了说明,而且后来还流传着这么一道歌诀:三人同行七十稀,五树梅花廿一枝,七子团圆正半月,除百零五便得知。这就是韩信点兵的计算方法,它的意思是:凡是用3个一数剩下的余数,将它用70去乘(因为70是5与7的倍数,而又是以3去除余1的数);5个一数剩下的余数,将它用21去乘(因为21是3与7的倍数,又是以5去除余1的数);7个一数剩下的余数,将它1/2用15去乘(因为15是3与5的倍数,又是以7去除余1的数),将这些数加起来,若超过105,就减掉105,如果剩下来的数目还是比105大,就再减去105,直到得数比105小为止。这样,所得的数就是原来的数了。根据这个道理,你可以很容易地把前面的五个题目列成算式:1×70+2×21+2×15-105=142-105=37因此,你可以知道,原来这一堆蚕豆有37粒。1900年,德国大数学家大卫希尔伯特归纳了当时世界上尚未解决的最困难的23个难题。后来,其中的第十问题在70年代被解决了,这是近代数学的五个重大成就。据证明人说,在解决问题的过程中,他是受到了“中国剩余定理”的启发的。定理1 如a被n除所得的余数等b被n除所得的余数,c被n除所得的余数等于d被n除所得的余数, 则ac被n除所得的余数等于b d被n除所得的余数。用同余式叙述就是:如a≡b(mod n ),c≡d(mod n )则ac≡b d(mod n )定理2 被除数a加上或减去除数b的倍数,再除以b,余数r不变。即如a ≡ r(mod b ),则a ± b n≡r(mod b )例如70≡1(mod 3 )可得70±10×3≡1(mod 3 ) 【韩信点兵法口诀的原理】①能被5,7除尽数是35k,其中k=2,即70除3正好余1,70a 除3正好余a。②能被3,7除尽数是21k,其中k=1,即21除5正好余1,21b 除5正好余b。③能被3,5除尽数是15k,其中k=1,即15除7正好余1,15c 除7正好余c。这样——根据①可知 70a+21b+15c 除3正好余a。根据②可知 70a+21b+15c 除5正好余b。根据③可知 70a+21b+15c 除7正好余c。 (70a+21b+15c)%(3*5*7)为最小值,然后再判断最小值是否满足条件。主要是同余理论:两个数除数相同,余数的和等于和的余数,余数的积等于积的余数。韩信点兵只是“三三数之余二,五五数之余三,七七数之余二”,这种比较小的数值,如果变成比较大的数,就需要同余理论来计算了。计算结果即可 韩信带1500名兵士打仗,战死四五百人,站3人一排,多出2人;站5人一排,多出4人;站7人一排,多出6人。韩信马上说出人数:1049 如多一人,即可凑整。幸存人数应在1000~1100人之间,即得出: 3乘5乘7乘10减1=1049(人) 到了明代,数学家程大位用诗歌概括了这一算法,他写道: 三人同行七十稀,五树梅花廿一枝, 七子团圆月正半,除百零五便得知。 这首诗的意思是:用3除所得的余数乘上70,加上用5除所得余数乘以21,再加上用7除所得的余数乘上15,结果大于105就减去105的倍数,这样就知道所求的数了。 希望对你有帮助 返回列表:情感美文 韩信点兵法的算法是什么意思?要详细!还有那些和韩信点兵(鬼谷算)差不多的速算方法?谁知到那个韩信点兵的计算公式,关于余数的什么是“韩信点兵"计算法? 上一篇:二字词语大全 下一篇:表现豪情壮志的古诗