韩信点兵 解法
- 格式:doc
- 大小:22.50 KB
- 文档页数:2
数学典故:韩信点兵
下面是店铺为大家整理的数学典故,希望大家能够从中有所收获!
我国汉代有位大将,名叫韩信。
他每次集合部队,只要求部下先后按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张。
新华小学订了多少张《中国少年报》呢?。
[趣味数学] 韩信点兵民间故事《韩信点兵》:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝的兴建立下了卓绝的功劳。
据说韩信的数学水平也非常高超,他在点兵的时候,为了保住军事机密,不让敌人知道自己部队的实力,先令士兵从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年整理】韩信点兵问题的初等解法“韩信点兵”问题的初等解法研究王晓东河北省卢龙县燕河营镇中学 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的正整数解。
在上面的方程组中,未知数的个数多于方程的个数,则把这种方程(组)叫做不定方程(组)。
不定方程(组)的解是不确定的,一般不定方程总有无穷多个组解,但若加上整数(或正整数)解的特定限制,则不定方程(组)的解有三种可能:有无限组解,有限组解,或无解。
我国古代人民对于不定方程(组)这类问题解法的探讨有着悠久的历史,在中国古代的《孙子算经》中曾作为一个典型问题进行论述。
其中的一个经典例题是:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物有几何,答曰:二十三。
术曰:三三数之剩二,则置一百四十;五五数之剩三,则置六十三;七七数之剩二,则置三十;并之得二百三十三,以二百一十减之,即得。
凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五。
一百(零)六以上,以一百(零)五减之,即得。
在中国民间还广为流传着一个口诀:三人同行七十稀,五树梅花二十一。
【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的正整数解。
在上面的方程组中,未知数的个数多于方程的个数,则把这种方程(组)叫做不定方程(组)。
不定方程(组)的解是不确定的,一般不定方程总有无穷多个组解,但若加上整数(或正整数)解的特定限制,则不定方程(组)的解有三种可能:有无限组解,有限组解,或无解。
我国古代人民对于不定方程(组)这类问题解法的探讨有着悠久的历史,在中国古代的《孙子算经》中曾作为一个典型问题进行论述。
其中的一个经典例题是:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物有几何?答曰:二十三。
术曰:三三数之剩二,则置一百四十;五五数之剩三,则置六十三;七七数之剩二,则置三十;并之得二百三十三,以二百一十减之,即得。
凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五。
一百(零)六以上,以一百(零)五减之,即得。
在中国民间还广为流传着一个口诀:三人同行七十稀,五树梅花二十一。
七子团圆正半月,除百零五便得知。
韩信点兵算法及其原理【问题】求最小非负整数N,使他在除以3,5,7以后所得余数分别是a,b,c。
【韩信点兵法的口诀】三人同行七十稀,五树梅花廿一枝,七子团圆整半月,除百零五便得知。
【韩信点兵法口诀的释义】前三句意思较为明确,假如说一个非负整数N,在除以3,5,7以后所得余数分别是a,b,c。
那么70a+21b+15c 一定是符合题意要求的数。
第四句“除”字作“减”字解。
因为符合要求的最小数N必满足0≤N<105,但是70a+21b+15c 却有可能大于105,甚至大于210,所以还不一定是符合要求的最小数。
那么当他大于或等于105时,还必须减去105,可能还要再减去105,直到比105小为止,才可以得到符合题意要求的最小数。
【说明】这里105是3,5,7的最小公倍数,70a+21b+15c + 105k 也一定满足“除以3,5,7以后所得余数分别是a,b,c”。
【例如】a=b=c=2,70a+21b+15c=212,70a+21b+15c-105=107>105。
而符合题意要求的最小数是 2,即 212-105-105=2.【再如】a=2,b=4,c=6,70a+21b+15c=314,314-105=209>105。
而符合题意要求的最小数是 104,即 314-105-105=104.【韩信点兵法口诀的原理】①能被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。
【韩信点兵法口诀的局限性】只适宜于如题所示的一个极为特殊的问题,要推广到同类问题必须另行制作口诀(即公式)。
韩信点兵问题的神解法定理1:一个数除以a余数x,除以b余数y,a、b互质且a<b,求这个数的最小值。
设这个数为z,则z=b(an+x-y)/(b-a)+y (1)或z=a(bn+x-y)/(b-a)+x (2)其中n为使(bn+x-y)/(b-a)为正整数的最小值。
证明:设z=al+x=bm+y 则:al+x-y-am=(b-a)m所以m=(a(l-m)+x-y)/(b-a)将变量l-m用独立变量n代替:m= (an+x-y)/(b-a)将m代入以上等式得到:z=b(an+x-y)/(b-a)+y同理可以证明等式2定理2:在定理1等式中,0<=n<=b-a。
证明:从定理1等式中可知n=l-m,因为a<b,所以l>=m,故n>=0假设n=h(b-a)+k,k<=b-a 代入以上算式z=b(ah(b-a)+ak+x-y)/(b-a)+y=ahb+b(ak+x-y)/(b-a),由此可知,n可以取值为k。
根据以上两个定理来计算韩信点兵问题,具有两个方面的优点:1、将两个变量合并成了一个变量,从而只需要尝试一个变量即可。
2、这一个变量的范围被两个除数的值界定,需要尝试的最多次数是确定的。
例1:一个数除以9余5,除以13余4,求这个数的最小值列出算式:13*(9n+5-4)/(13-9)+4=13*(9n+1)/4+4显然能让相除结果为整数的n的最小值为3,代入则得:13*(9*3+1)/4+4=95。
例2:一个数除以13余10,除以17余5,求这个数的最小值列出算式:17*(13n+10-5)/(17-13)+5=17*(13n+5)/4+5显然能让相除结果为整数的n的最小值也为3,代入则得:17*(13*3+5)/4+5=192以上算法比传统算法更简便,但依然有缺陷,即如果除数的值比较大时,要获得满足条件的n的值尝试的次数也会相应增大,从而对于大数相除时也会计算量太大,无法手算,用计算机计算也会比较耗时。
-韩信点兵问题汉朝大将韩信善于用兵。
据说韩信每当部队集合,他只要求部下士兵作1~3、1~5、1~7报数后,报告一下特各次的余数,便可知道出操公倍数和缺额。
这个问题及其解法,大世界数学史上颇负盛名,中外数学家都称之为“孙子定理”或“中国剩余定理”。
这类问题的解题依据是:1、如果被除数增加(或减少)除数的若干倍,除数不变,那么余数不变。
例如:20÷3=6 (2)(20-3×5)÷3=21 (2)(20+3×15)÷3=1 (2)2、如果被除数扩大(缩小)若干倍,除数不变,那么余数也扩大(缩小)同样的倍数。
例如:20÷9=2 (2)(20×3)÷9=6 (6)(20÷2)÷9=1 (1)例1、一个数除以3余2,除以5余3,除以7余2。
求适合这些条件的最小的数。
1、求出能被5和7整除,而被3除余1的数,并把这个数乘以2。
70×2=1402、求出能被3和7整除,而被5除余1的数,并把这个数乘以3。
21×3=633、求出能被5和3整除,而被7除余1的数,并把这个数乘以2。
15×2=304、求得上面三个数的和140+63+30=2335、求3、57的最小公倍数[3、5、7]=1056、如果和大于最小公倍数,要从和里减去最小公倍数的若干倍233–105×2=23例2、一个数除以3余2,除以5余2,除以7余4,求适合这些条件的最小的数。
解法一:70×2+21×2+15×4=242[3、5、7]=105242–105×2=32解法二、35+21×2+15×4=137[3、5、7]=105137–105=32例3、一个数除以5余3,除以6余4,除以7余1,求适合这些条件的最小的数。
1、因为[6、7]=42,而42÷5余2,根据第二个依据,42×4÷5应余8(2×4),实际余3,所以取42×4=1682、因为[7、5]=35,而35÷6余5,则取35×2=703、[5、6]=30,30÷7余2,则取30×4=1204、[5、6、7、]=2105、 168+70+120–210=148例4、我国古代算书上有一道韩信点兵的算题:卫兵一队列成五行纵队,末行一人;列成六行纵队末行五人;列成七行纵队,末行四人;列成十一行纵队,末行十人。
韩信点兵算法介绍韩信点兵算法,也称为“合璧算法”,是中国古代著名将军韩信所使用的一种军事策略。
该算法的目的是从一组士兵中找出符合特定条件的人数。
韩信点兵算法在计算机领域中有着广泛的应用,尤其在数据处理与分析中起着重要的作用。
算法原理韩信点兵算法的核心思想是利用取模运算将问题转化为求解一次一元一次方程。
算法的具体步骤如下:1.首先,根据题设条件确定要找的士兵的特征,例如身高、年龄、编号等。
2.将每个士兵的特征与条件进行对比,如果符合条件,则给这个士兵编一个号码。
同时,利用取模运算,将该士兵的编码除以总人数,取余数。
3.继续遍历所有的士兵,每个符合条件的士兵也要进行取模运算,并将结果与之前的结果进行累加。
4.最后,对累加结果进行取模运算,得到最终的结果,即为符合条件的士兵数量。
算法示例下面以一个具体的例子来说明韩信点兵算法的应用。
假设有一支由1000名士兵组成的队伍,韩信要从中找出年龄为30岁的士兵,且编号为1的倍数或者身高大于180cm 的士兵。
根据韩信点兵算法,我们可以得到以下的答案:total =1000# 队伍总人数count =0# 计数器,用于记录符合条件的士兵数量for soldier in range(1, total +1):if soldier %30==0or soldier %180>0:count +=1result = count % total在上述代码中,我们使用了一个循环来遍历所有的士兵。
对于每个士兵,我们首先判断其年龄是否为30岁,如果是,则条件一成立。
接着,我们判断其编号是否为1的倍数或者身高是否大于180cm,只要有一个条件满足,就符合条件。
最后,我们将符合条件的士兵数量进行取模运算,并将结果累加到计数器中。
算法优化韩信点兵算法在实际应用中可能会面临数据量巨大的情况,这时可以对算法进行优化,以提高执行效率。
以下是一些常用的优化方法:1.使用并行计算:对于大规模的士兵队伍,可以利用并行计算的思想,将任务分给多个处理器并行执行,以提高算法的效率。
韩信点兵数学题韩信是中国历史上著名的将领之一,他在数学方面也非常突出。
他曾提出了一道著名的问题,被称为“韩信点兵数学题”。
这道题可以用一个简单的数学算法来解决,下面我们就来详细讲解。
问题描述韩信在战斗中遇到了一支敌军。
他想要知道敌军究竟有多少兵力,于是他派人去数敌军的军营。
不过,他的间谍只能在外面听取军营内的人数。
听了一阵之后,间谍回来汇报说:“将军,我数了三次,每次听到的数字分别是3、5和7,而且这些数字之和是78。
”这时,韩信突然想到,敌军的兵力究竟是多少呢?问题分析假设敌军的兵力为x,那么我们可以列出以下的等式:3x ≡ 2 (mod 3)5x ≡ 3 (mod 5)7x ≡ 4 (mod 7)这里,≡ 指的是模等于,也就是两个数除以模数后的余数相等。
我们可以发现,所有的式子右边都有一个共同的模数,也就是3、5和7的乘积,即105。
在这个等式组中,我们要找到一个数x,使得对于每个等式,都满足模等于的条件。
欧拉定理为了解决这类问题,我们可以利用欧拉定理。
欧拉定理表示:如果两个数a和m互质(即它们没有公因数),那么a^φ(m) ≡ 1 (mod m)。
其中,φ(m)表示小于或等于m的正整数中,与m互质的数的个数。
在我们的问题中,3、5和7互质。
所以我们可以求解方程组中每个等式的解。
解题过程首先,我们需要根据欧拉定理来计算φ(m)。
φ(3) = 3 - 1 = 2φ(5) = 5 - 1 = 4φ(7) = 7 - 1 = 6接下来,我们将每个等式的模数m换成105,并根据欧拉定理来求解。
3^2 ≡ 1 (mod 3)5^4 ≡ 1 (mod 5)7^6 ≡ 1 (mod 7)然后,我们可以得到以下的等式:3x ≡ 2 (mod 105)5x ≡ 3 (mod 105)7x ≡ 4 (mod 105)接下来,我们可以计算这些等式的解。
对于第一个等式,我们可以得到x ≡ 35 (mod 105)。
韩信点兵问题韩信点兵问题又称“中国剩余定理”或“孙子定理”。
这种问题好多老师的讲解方法很笨拙,同学们做起来也很吃力,不少好学生在考试时,用了大量的时间研究这道题,为了提高我们的解题速度及正确率,现将我的经验和解题技巧提供给大家。
这类问题的解法根据是:1、如果被除数增加除数的若干倍,除数不变,那么余数不变。
例如:19÷7=2 (5)(19+2×7)÷7=4 (5)2、如果被除数扩大若干倍,除数不变,那么余数也扩大同样的倍数。
例如:20÷9=2 (2)(20×3)÷9=6 (6)例1、一个数除以5余3,除以6余4,除以7余1.求适合这些条件的最小数。
【5,6】=30 因为30÷7=4……2 不余1,要想余数为1,就得将余数2扩大4倍,即被除数扩大4倍,得30×4=120,所以120除以7余1。
【5,7】=35 因为 35÷6=5……5 ,要想余数为4,就得将余数5扩大2倍,那么被除数30就得扩大2倍,即35×2=70所以70÷6余4.【6,7】=42 因为42÷5=8……2 要想符合题中要求余3的话,余数2就得扩大4倍,即被除数扩大4倍,得42×4=168,168除以5余3.现找到的符合题中条件的一个数为:120+70+168=358 ,但不是最小的数,要想最小,就得减去除数5、6、7的最小公倍数,直到不够减为止。
【5,6,7】=210 , 358-210=148 ,所以答案为148完整的算式为:【5,6】=30 30÷7=4……2 30×4=120【5,7】=35 35÷6=5……5 35×2=70【6,7】=42 42÷5=8……2 42×4=168【5,6,7】=210120+70+168=358 358-210=148答:符合条件的最小的数是148.注:也可能会出现四个除数,不管有几个除数,都是用其它几个数的最小公倍数除以另外一个数,再找符合该条件的余数的被除数。
韩信点兵的计算公式
韩信点兵的计算公式:
韩信点兵的计算公式是n=2×70+3×21+2x15-105k。
韩信点兵的成语来源淮安民间传说常与多多益善搭配。
寓意越多越好。
韩信点兵形成了一类问题,也就是初等数论中的解同余式。
韩信带1500名兵士打仗,战死四五百人,站3人一排,多出2人,站5人一排,多出4人,站7人一排,多出3人。
韩信很快说出人数1004,这就是韩信点兵的故事。
同时在一千多年前的《孙子算经》中,也有类似这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。
第五讲韩信点兵一、学法指导我国古代“算经十书”之一的《孙子算经》中,有这样一道题:“今有物不知其数,凡三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”这就是著名的韩信点兵问题,这道题的意思是,一个数除以3余2,除以5余3,除以7余2,求适合这个条件的最小数。
在带余数的除法中,被除数= 除数×商+余数。
由此可以推出我们常用到的下列性质:1.一个自然数n被另一个自然数m除时,余数只可能是:0,1,2,……,(m-1)。
2.如果两个整数a、b除以同一个数m,而余数相同(即同余),那么a和b的差能被m整除。
3.如果除数不变,同余的两个被除数扩大同样的倍数后,仍然同余;同余的两个数分别加上除数的倍数后,余数不变。
4. 如果整数a和b除以自然数m,所得余数相同,那么a n和b n除以m,所得的余数也相同。
二、例题:例1、有一堆苹果,不论分成5个一堆,还是8个一堆,最后都多出2个。
这堆苹果至少有多少个?例2、一个自然数,除以4余2,除以10余8,除以25余23.这个数最小是多少?例3、一堆糖果,4个一数多1个,9个一数多4个,11个一数多9个,这堆糖果至少有多少个?例4、一个数,除以5余1,除以7余2,除以9余4. 这个数最小是多少?例5、某班同学排队,如果每队3人,就多出1人;每排5人,就多出3人;每排7人,就多出2人.这个班至少有多少同学?例6、学生们在操场上列队做操,只知道人数在90~110之间。
如果排成3列则人数不多也不少;如排成5列则少2人;如排成7列则少4人,问其有学生多少人?例7、如果某数除492,2241,3195都余15,那么这个数是多少?例8、713,1103,830,947被某一自然数除,所得余数相同(不为零),求除数。
三、练习A卷、基本能力训练1.同学们做操,无论排成6人一行,8人一行,10人一行,最后一行都只站3人。
至少有多少人做操?2.一个整数,除以8缺3,除以12余5,除以18余5.这个数最小是多少?3.一个数除以5余4,除以9余7.这个数最小是多少?4.一个数,除以3余2,除以5余4,除以7余3,这个数最小是多少?5.一个数除以3余1, 除以5余3,除以7余4,这个数最小是多少?6.一个数除以6余1,除以11余4,这个数最小是多少?7.在1—100中,哪个自然数除以3,除以5都余1.且能被7整除?8.有一堆小棒,9根一捆多7根.10根一捆多8根.15根一捆多13根。
韩信点兵又称为中国剩余定理
韩信点兵又称为中国剩余定理
韩信点兵又称为中国剩余定理,相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人。
刘邦茫然而不知其数。
我们先考虑下列的问题:假设兵不满一万,每5人一列、9人一列、13人一列、17人一列都剩3人,则兵有多少?
首先我们先求5、9、13、17之最小公倍数9945(注:因为5、9、13、17为两两互质的整数,故其最小公倍数为这些数的积),然后再加3,得9948(人)。
中国有一本数学古书「孙子算经」也有类似的问题:。
韩信点兵解法
韩信点兵是一个有趣的猜数游戏。
如果你随便拿一把蚕豆(数目约在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年代被解决了,这是近代数学的五个重大成就。
据证明人说,在解决问题的过程中,他是受到了“中国剩余定理”
的启发的。