当前位置:首页 » 操作系统 » 韩信点兵算法

韩信点兵算法

发布时间: 2022-01-27 14:51:33

⑴ 韩信点兵的方法

韩信点兵

作者:jianhao

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

三人同行七十稀,

五树梅花开一枝,

七子团圆正月半,

除百零五便得知。”

刘邦出的这道题,可用现代语言这样表述:

“一个正整数,被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即是所求。

这个算法在我国有许多名称,如“韩信点兵”,“鬼谷算”,“隔墙算”,“剪管术”,“神奇妙算”等等,题目与解法都载于我国古代重要的数学着作《孙子算经》中。一般认为这是三国或晋时的着作,比刘邦生活的年代要晚近五百年,算法口诀诗则载于明朝程大位的《算法统宗》,诗中数字隐含的口诀前面已经解释了。宋朝的数学家秦九韶把这个问题推广,并把解法称之为“大衍求一术”,这个解法传到西方后,被称为“孙子定理”或“中国剩余定理”。而韩信,则终于被刘邦的妻子吕后诛杀于未央宫。

请你试一试,用刚才的方法解下面这题:

一个数在200与400之间,它被3除余2,被7除余3,被8除余5,求该数。

(解:112×2+120×3+105×5+168k,取k=-5得该数为269。)

什么叫做“韩信点兵”?

韩信点兵是一个有趣的猜数游戏。如果你随便拿一把蚕豆(数目约在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个一数剩下的余数,将它用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年代被解决了,这是近代数学的五个重大成就。据证明人说,在解决问题的过程中,他是受到了“中国剩余定理”的启发的。

⑵ 韩信点兵

楼主,是韩信点兵-多多益善

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

三人同行七十稀,

五树梅花开一枝,

七子团圆正月半,

除百零五便得知。”

刘邦出的这道题,可用现代语言这样表述:

“一个正整数,被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即是所求。

这个算法在我国有许多名称,如“韩信点兵”,“鬼谷算”,“隔墙算”,“剪管术”,“神奇妙算”等等,题目与解法都载于我国古代重要的数学着作《孙子算经》中。一般认为这是三国或晋时的着作,比刘邦生活的年代要晚近五百年,算法口诀诗则载于明朝程大位的《算法统宗》,诗中数字隐含的口诀前面已经解释了。宋朝的数学家秦九韶把这个问题推广,并把解法称之为“大衍求一术”,这个解法传到西方后,被称为“孙子定理”或“中国剩余定理”。而韩信,则终于被刘邦的妻子吕后诛杀于未央宫。
希望对你有帮助!

⑶ 什么是“韩信点兵"计算法

这个还是比较容易的,常出的题型如“今有物不知其数,三三数之剩二(就是这个数除以三的余数是二的意思),五五数之剩三,七七数之剩二,问物几何。”(韩信点兵算法也就是所谓的中国剩余定理)
我们来假设这个数为x,根据题意列出下式;
x≡2(mod3),
x≡3(mod5),
x≡2(mod7),
根据中国剩余定理,
m1=3,m2=5,m3=7,a1=2,a2=3,a3=2,
m=m1m2m3=3×5×7=105,
m1=m/m1=m2m3=5×7=35,
m2=m/m2=m1m3=3×7=21,
m3=m/m3=m1m2=3×5=15,
y1=m-11modm1=35-1mod3=2,
类似的y2,y3自己写,用word打这些慢麻烦的
写出了y2,y3后;我擦了辛辛苦苦打的求和在这边不知道用哪个语言才能显示
(我还是口述吧,x=求aimiyimodm的和从i=1开始到3)
=(2×35×2+3×21×1+2×15×1)mod105
=23
23即为所求数
,第一次回答很水,很多都没深入告诉你比如m-11其实-1是上标1是下标,
上标-1表示的是m1的逆{即x≡mm-1a(modm)=x≡a(modm)}不写了
希望你能看懂,要是没看懂
可以在问我总之我表达能力不是太强

⑷ 鬼谷算韩信点兵怎么算

变成一个纯粹的数学问题就是:有一个数,用3除余2,用5除余3,用7除余2。求这个数。 这个问题很简单:用3除余2,用7除也余2,所以用3与7的最小公倍数21除也余2,而用21除余2的数我们首先就会想到23;23恰好被5除余3,所以23就是本题的一个答案。

⑸ 韩信点兵(数学+编程

算出3 ,5,7的最小公倍数 再-1!!!! 这是算法!!!至于为什么?自己研究才能过目不忘!!

⑹ 韩信点兵算法

参考:blog.163.com/get_lose/blog/static/10008014920136254339773

⑺ 韩信点兵的计算公式是什么

古代时候有个《孙子算经》有几句乘法口诀:三人同行七十稀, 五树梅花廿一枝, 七子团圆正半月, 除百零五便得知。 意思是 3人一数剩下余数*70。5人一数剩下余数*21。七人一数剩下余数*15。然后+105.加到你感觉对啦就知道了。因为已知死了四五百了。

所以算法是这样的:2*70+4*21+6*15=314人

314+105+105+105+105+105+105+105=1049人。

⑻ 韩信点兵法的算法是什么意思要详细!

寓意越多越好。

热点内容
手机忘记密码被锁预示着什么 发布:2024-11-15 10:22:15 浏览:193
android图片管理 发布:2024-11-15 10:13:02 浏览:9
算法微调 发布:2024-11-15 10:07:44 浏览:542
python列表查询 发布:2024-11-15 10:06:08 浏览:133
保存在服务器的图片如何删除 发布:2024-11-15 09:55:09 浏览:801
花雨庭国际服服务器ip 发布:2024-11-15 09:54:00 浏览:503
服务器的空岛如何刷钱 发布:2024-11-15 09:40:52 浏览:263
安卓系统录像设置在哪里 发布:2024-11-15 09:36:33 浏览:918
电信级服务器电脑 发布:2024-11-15 09:26:27 浏览:247
压缩某个文件夹 发布:2024-11-15 09:03:11 浏览:892