韩信点兵 解法
数学典故:韩信点兵

数学典故:韩信点兵
下面是店铺为大家整理的数学典故,希望大家能够从中有所收获!
我国汉代有位大将,名叫韩信。
他每次集合部队,只要求部下先后按l~3、1~5、1~7报数,然后再报告一下各队每次报数的余数,他就知道到了多少人。
他的这种巧妙算法,人们称为鬼谷算,也叫隔墙算,或称为韩信点兵,外国人还称它为“中国剩余定理”。
到了明代,数学家程大位用诗歌概括了这一算法,他写道:
三人同行七十稀,五树梅花廿一枝,
七子团圆月正半,除百零五便得知。
这首诗的意思是:用3除所得的余数乘上70,加上用5除所得余数乘以21,再加上用7除所得的余数乘上15,结果大于105就减去105的倍数,这样就知道所求的数了。
比如,一篮鸡蛋,三个三个地数余1,五个五个地数余2,七个七个地数余3,篮子里有鸡蛋一定是52个。
算式是:
1×70+2×21+3×15=157
157-105=52(个)
看完以上的这则数学典故,不妨试试用上面的解法来算一下下面的这道题目!
题目:
新华小学订了若干张《中国少年报》,如果三张三张地数,余数为1张;五张五张地数,余数为2张;七张七张地数,余数为2张。
新华小学订了多少张《中国少年报》呢?。
[趣味数学] 韩信点兵
![[趣味数学] 韩信点兵](https://img.taocdn.com/s3/m/cf54312aeefdc8d376ee3295.png)
[趣味数学] 韩信点兵民间故事《韩信点兵》:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝的兴建立下了卓绝的功劳。
据说韩信的数学水平也非常高超,他在点兵的时候,为了保住军事机密,不让敌人知道自己部队的实力,先令士兵从1至3报数,然后记下最后一个士兵所报之数;再令士兵从1至5报数,也记下最后一个士兵所报之数;最后令士兵从1至7报数,又记下最后一个士兵所报之数;这样,他很快就算出了自己部队士兵的总人数,而敌人则始终无法弄清他的部队究竟有多少名士兵。
比如,已知军队人数大概在1000-1100左右,如果1-3报数余2人,1-5报数余3人,1-7报数余2人,则韩信立刻知道总人数1073人。
汉军本来就信服自己的统帅,这一来更相信韩信是“神仙下凡”、“神机妙算”。
于是每次出战都士气大振,经常大获全胜。
把韩信点兵问题再换个更简单的说法,就是说,有个数除3余2,除5余3,除7余2,问你这个数字最小是几?也可以给定一个范围,问你是几。
这类问题,纠结应该怎么下手解决呢?对于这样的问题,要先观察,是否存在规律,如果符合一定的规律,则可以通过简单口诀来实现;如果没有规律,那么就要通过一些特殊方法处理。
一、有规律问题的解法重要口诀:和同加和,差同减差,余同取余,最小公倍加先来说说最后一句,最小公倍加,意思是,不管什么情况,先把最小公倍数求出来,这个是作为基础。
然后根据不同情况进行辨别,如何继续处理。
(一)和同加和意思是,如果不同被除数和余数的和相同,那么就把这个和,加到最小公倍数上。
例:一个数除5余3,除6余2,除7余1解题思路:5、6、7的最小公倍数是210,因为5+3=6+2=7+1=8,所以这个数最小就是8,其余满足条件的数字是210的倍数+8,比如218、428……(二)差同减差意思是,如果不同被除数和余数的差相同,那么就把这个差,用最小公倍数减掉。
例:一个数除5余3,除6余4,除7余5解题思路:5、6、7的最小公倍数是210,因为5-3=6-4=7-5=2,所以这个数最小就是:210-2=208,其余满足条件的数字是210的倍数+208,比如418、628……(三)余同取余这个是最简单的了,意思是,如果余数都相同,直接把余数加到最小公倍数上。
穷举法—韩信点兵

穷举法—韩信点兵1. 问题描述:韩信点兵。
韩信有⼀队兵,他想知道有多少⼈,便让⼠兵排队报数。
按从1⾄ 5报数,最末⼀个⼠兵报的数为1;按从1⾄6报数,最末⼀个⼠兵报的数为5;按从 1⾄ 7报数,最末⼀个⼠兵报的数为 4;按从 1⾄ 11报数,最末⼀个⼠兵报的数为 10。
你知道韩信⾄少有多少兵吗?2、【算法思想】设兵数为x,则按题意x应满⾜下述关系式:x%5 ==1 && x%6==5 &&x %7==4 && x%11==10采⽤穷举法对x从 1开始试验,可得到韩信⾄少有多少兵。
3、代码实战:穷举法,设置标志find#include<stdio.h>#include "stdlib.h"int main( ){int x =1;int find = 0; /*设置找到标志为假*/while (!find){if (x % 5 == 1 && x % 6 == 5 && x % 7 == 4 && x % 11 == 10){find = 1;}x++;printf(" x = %d\n", x);}system("pause"); /*解决快闪问题*/}运⾏结果:(运⾏结果是从1—找到的最⼩数)4、其他代码:goto1 #include<stdio.h>2 #include "stdlib.h"3int main( )4 {5int x ;6for(x=1; ;x++)7 {8if(x % 5 == 1 && x % 6 == 5 && x % 7 == 4 && x % 11 == 10 ) 9 { printf("最⼩值是x= %d\n ",x);10goto end;11 }12 }13 end:;14 system("pause");15 }break语句执⾏代码1 #include<stdio.h>2 #include "stdlib.h"3int main( )4 {5int x ;6for(x=1; ;x++)7 {8if(x % 5 == 1 && x % 6 == 5 && x % 7 == 4 && x % 11 == 10 ) 9 { printf("最⼩值是x= %d\n ",x);10break;11 }12 }1314 system("pause");15 }结果相同,不再赘述。
【2017年整理】韩信点兵问题的初等解法

【2017年整理】韩信点兵问题的初等解法“韩信点兵”问题的初等解法研究王晓东河北省卢龙县燕河营镇中学 066407韩信,是我国汉代刘邦手下的一员能征善战,智勇双全的大将。
历史上流传着一个关于他运用奇特方法点兵的传说。
有一天,韩信来到操练场,检阅士兵操练。
他问部将,今天有多少士兵操练,部将回答:“大约两千三百人。
”韩信走上点兵台,他先命全体士兵排成7路纵队,问最后一排剩几人,部将说,剩2人;他又命全体士兵排成5路纵队,问最后一排剩几人,部将说,剩3人;最后,他又让全体士兵排成3路纵队,问最后一排剩几人,部将说,剩2人。
韩信告诉部将,今天参加操练的士兵有2333人。
从现代数学的观点来看,解决韩信点兵问题,可以这样思考:设操练士兵的总数为M,则M=3x+2=5y+3=7z+2其中,x,y,z分别表示排成3路纵队,5路纵队,7路纵队的纵队数目。
求出了x,y,z以后,M也求求出来了。
而求x,y,z可以看成求方程组3x+2=5y+33x+2=7z+2的正整数解。
在上面的方程组中,未知数的个数多于方程的个数,则把这种方程(组)叫做不定方程(组)。
不定方程(组)的解是不确定的,一般不定方程总有无穷多个组解,但若加上整数(或正整数)解的特定限制,则不定方程(组)的解有三种可能:有无限组解,有限组解,或无解。
我国古代人民对于不定方程(组)这类问题解法的探讨有着悠久的历史,在中国古代的《孙子算经》中曾作为一个典型问题进行论述。
其中的一个经典例题是:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物有几何,答曰:二十三。
术曰:三三数之剩二,则置一百四十;五五数之剩三,则置六十三;七七数之剩二,则置三十;并之得二百三十三,以二百一十减之,即得。
凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五。
一百(零)六以上,以一百(零)五减之,即得。
在中国民间还广为流传着一个口诀:三人同行七十稀,五树梅花二十一。
韩信点兵类数学问题的独特解法

3
5
已知 , , 均为整数且均大于等于 1,因此 也为大于等于的 1 的整数,将(5)式 带入(3)可得下式
21 2
6
由(2)(6)可解出
4 因为 为大于 1 的整数,所以
1 6
5 1须能被 5 整除,因此 必有如下形式
51
7
这里 为整数,从而由(6)(7)可得 有如下形式
105 23
6
当 n 0 时即为满足条件的最小的数是 23。利用 Excel 表格计算功能可以直接求出 一系列满足条件的解,这里列出 0,1,2,3,4 ⋯ 10时的数据供大家参考。
233
77
46
33
2
338 112
67
48
2
443 147
88
63
2
548 182 109
78
2
653 217 130
93
2
758 252 151 108
2
863 287 172 123
2
968 322 193 138
2
1073 357 214 153
2
除数5 余数
R2 3 3 3 3 3 3 3 3 3 3 3
ݔൌ 3ܽ 2
ሺ1ሻ
ݔൌ 5ܾ 3
ሺ2ሻ
ݔൌ 7ܿ 2
ሺ3ሻ
这里有四个变量ݔ, ܽ, ܾ, ܿ,但只能列出 3 个方程,从方程组解的判据来说该方程组 可能有无限个解,如果再结合整数的性质,应该是可以求出可能的解。
首先,由方程(1)(3)可得式(4)
7
3
4
因为 为整数,所以由可知 必满足以下条件
采用逐步求解法几乎可直接求出该类问题的最小解,但还是比较费时费力。实际 上在两千多年《孙子算经》已经给出了简便的算法,明代的数学家程大位还把这个基 本算法编成了四句歌诀:
【2017年整理】韩信点兵问题的初等解法

【2017年整理】韩信点兵问题的初等解法“韩信点兵”问题的初等解法研究王晓东河北省卢龙县燕河营镇中学 066407韩信,是我国汉代刘邦手下的一员能征善战,智勇双全的大将。
历史上流传着一个关于他运用奇特方法点兵的传说。
有一天,韩信来到操练场,检阅士兵操练。
他问部将,今天有多少士兵操练,部将回答:“大约两千三百人。
”韩信走上点兵台,他先命全体士兵排成7路纵队,问最后一排剩几人,部将说,剩2人;他又命全体士兵排成5路纵队,问最后一排剩几人,部将说,剩3人;最后,他又让全体士兵排成3路纵队,问最后一排剩几人,部将说,剩2人。
韩信告诉部将,今天参加操练的士兵有2333人。
从现代数学的观点来看,解决韩信点兵问题,可以这样思考:设操练士兵的总数为M,则M=3x+2=5y+3=7z+2其中,x,y,z分别表示排成3路纵队,5路纵队,7路纵队的纵队数目。
求出了x,y,z以后,M也求求出来了。
而求x,y,z可以看成求方程组3x+2=5y+33x+2=7z+2的正整数解。
在上面的方程组中,未知数的个数多于方程的个数,则把这种方程(组)叫做不定方程(组)。
不定方程(组)的解是不确定的,一般不定方程总有无穷多个组解,但若加上整数(或正整数)解的特定限制,则不定方程(组)的解有三种可能:有无限组解,有限组解,或无解。
我国古代人民对于不定方程(组)这类问题解法的探讨有着悠久的历史,在中国古代的《孙子算经》中曾作为一个典型问题进行论述。
其中的一个经典例题是:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物有几何,答曰:二十三。
术曰:三三数之剩二,则置一百四十;五五数之剩三,则置六十三;七七数之剩二,则置三十;并之得二百三十三,以二百一十减之,即得。
凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五。
一百(零)六以上,以一百(零)五减之,即得。
在中国民间还广为流传着一个口诀:三人同行七十稀,五树梅花二十一。
韩信点兵算法原理

韩信点兵算法原理
韩信点兵算法是一种数学问题的解决方法,用于找到一个整数
n的所有因数。
韩信点兵算法具体的原理如下:
1. 用1到n之间的整数依次尝试去除n,若n能够整除该整数,则该整数为n的一个因数。
2. 遍历整数1到n,将能整除n的整数放入一个集合或数组中。
3. 返回这个集合或数组,即可得到n的所有因数。
这种方法的优势在于简单易懂,且时间复杂度较低。
因为它只需要遍历整数1到n一次,每次判断是否能整除n,所以时间
复杂度为O(n)。
需要注意的是,韩信点兵算法找到的是n的所有因数,而不仅仅是质因数。
质因数是因数中的质数,可以通过进一步判断因数是否为质数来得到。
总的来说,韩信点兵算法是一种简单且高效的方法,用于找到一个整数n的所有因数,对于解决数学问题具有一定的帮助。
韩信点兵问题的初等解法

“韩信点兵”问题的初等解法研究王晓东河北省卢龙县燕河营镇中学066407韩信,是我国汉代刘邦手下的一员能征善战,智勇双全的大将。
历史上流传着一个关于他运用奇特方法点兵的传说。
有一天,韩信来到操练场,检阅士兵操练。
他问部将,今天有多少士兵操练,部将回答:“大约两千三百人。
”韩信走上点兵台,他先命全体士兵排成7路纵队,问最后一排剩几人,部将说,剩2人;他又命全体士兵排成5路纵队,问最后一排剩几人,部将说,剩3人;最后,他又让全体士兵排成3路纵队,问最后一排剩几人,部将说,剩2人。
韩信告诉部将,今天参加操练的士兵有2333人。
从现代数学的观点来看,解决韩信点兵问题,可以这样思考:设操练士兵的总数为M,则M=3x+2=5y+3=7z+2其中,x,y,z分别表示排成3路纵队,5路纵队,7路纵队的纵队数目。
求出了x,y,z以后,M也求求出来了。
而求x,y,z可以看成求方程组3x+2=5y+33x+2=7z+2的正整数解。
在上面的方程组中,未知数的个数多于方程的个数,则把这种方程(组)叫做不定方程(组)。
不定方程(组)的解是不确定的,一般不定方程总有无穷多个组解,但若加上整数(或正整数)解的特定限制,则不定方程(组)的解有三种可能:有无限组解,有限组解,或无解。
我国古代人民对于不定方程(组)这类问题解法的探讨有着悠久的历史,在中国古代的《孙子算经》中曾作为一个典型问题进行论述。
其中的一个经典例题是:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物有几何?答曰:二十三。
术曰:三三数之剩二,则置一百四十;五五数之剩三,则置六十三;七七数之剩二,则置三十;并之得二百三十三,以二百一十减之,即得。
凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五。
一百(零)六以上,以一百(零)五减之,即得。
在中国民间还广为流传着一个口诀:三人同行七十稀,五树梅花二十一。
七子团圆正半月,除百零五便得知。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
韩信点兵解法
韩信点兵是一个有趣的猜数游戏。
如果你随便拿一把蚕豆(数目约在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年代被解决了,这是近代数学的五个重大成就。
据证明人说,在解决问题的过程中,他是受到了“中国剩余定理”
的启发的。