9.算法案例(韩信点兵----孙子问题)

合集下载

2019-2020年高中数学 算法案例教案 苏教版必修3(1)

2019-2020年高中数学 算法案例教案 苏教版必修3(1)

2019-2020年高中数学 算法案例教案 苏教版必修3(1)总 课 题算法案例 总课时 第 9 课时 分 课 题 算法案例 分课时 第 1 课时教学目标 通过了解中国古代算法案例,体会中国古代数学对世界数学发展的贡献.重点难点 通过案例分析,体会算法思想,熟练算法设计.例题剖析【案例1】韩信是秦末汉初的著名军事家,据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数.韩信先令士兵排成3列纵队,结果有2人多余;接着他立刻下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行.韩信看此情形,立刻报告共有士兵2333人.众人都愣了,不知韩信用什么办法清点出准确人数的.这个故事是否属实,已无从查考,但这个故事却引出一个著名的数学问题,即闻名世界的“孙子问题”. 这种神机妙算,最早出现在我国《算经十书》之一的《孙子算经》中,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?答曰:二十三.”所以人们将这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.【算法设计思想】“孙子问题”相当于求关于的不定方程组⎪⎩⎪⎨⎧+=+=+=273523z m y m x m 的整数解.设所求的数为,根据题意,应同时满足下列三个条件:(1)被除后余,即;(2)被除后余,即;(3)被除后余,即;首先,从开始检验条件,若个条件中有任何一个不满足,则递增,当同时满足个条件时,输出.【流程图】 【伪代码】【案例2】写出求两个正整数的最大公约数的一个算法.公元前3世纪,欧几里得介绍了求两个正整数的最大公约数的方法,即求出一列数:0121 -,,,,,,,n n r r r r b a ,这列数从第三项开始,每一项都是前两项相除所得的余数(即),余数等于的前一项,即是和的最大公约数,这种方法称为“欧几里得辗转相除法”.【算法设计思想】欧几里得展转相除法求两个正整数的最大公约数的步骤是:计算出的余数,若,则即为的最大公约数;若,则把前面的除数作为新的被除数,把余数作为新的除数,继续运算,直到余数为,此时的除数即为的最大公约数.求的最大公约数的算法为:输入两个正整数;如果,那么转,否则转;;;,转;输出.【流程图】【伪代码】【案例3】写出方程在区间内的一个近似解(误差不超过)的一个算法.【算法设计思想】如下图:如果设计出方程在某区间内有一个根,就能用二分搜索求得符合误差限制的近似解.算法步骤可表示为:取的中点,将区间一分为二;若,则就是方程的根,否则判断根在的左侧还是右侧;若,则,以代替;若,则,以代替;若,计算终止,此时,否则转.【流程图】【伪代码】巩固练习1.下面一段伪代码的目的是______________________________________________.,WhilecmnWhile注明:案例3的图2.在直角坐标系中作出函数和的图像,根据图像判断方程的解的范围,再用二分法求这个方程的近似解(误差不超过),并写出这个算法的伪代码,画出流程图.课堂小结通过案例分析,体会算法思想,熟练算法设计,进一步理解算法的基本思想,在分析案例的过程中设计规范合理的算法.课后训练班级:高二()班姓名:____________一基础题1.一种放射性物质不断变化为其它物质,每经过一年剩留下来的物质的质量约为原来,那么,约经过多少年,剩留的质量是原来的一半?试写出运用二分法计算这个近似值的伪代码.2.设计一个算法,计算两个正整数的最小公倍数.二提高题3.判断某年份是否为闰年,要看此年份数能否被整除.若不能被整除则是平年,月是天;若能被整除但不能被整除,则该年是闰年,月是天;若能被整除又能被整除,还要看能否被整除,若能则为闰年,否则为平年.画出上述算法的流程图,并写出伪代码.4.我国古代劳动人民对不定方程的研究作出过重要贡献,其中《张丘建算经》中的“百鸡问题”就是一个很有影响力的不定方程问题,今有鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,凡百钱买百只,问鸡翁、鸡母、鸡雏各几何.其意思是:一只公鸡的价格是钱,一只母鸡的价格是钱,三只小鸡的价格是钱,想用钱买只鸡,问公鸡、母鸡、小鸡个买几只.设分别代表公鸡、母鸡、小鸡的只数,我们可以大致确定的取值范围:若钱全买公鸡,则最多可买只,即的取值范围是;若钱全买母鸡,则最多可买只,即的取值范围是;当在各自的范围内确定后,小鸡的只数也就确定了.根据上述算法思想,画出求解的流程图,并写出相应的伪代码..。

【精品文档】中国剩余定理的应用实例——韩信点兵-推荐word版 (4页)

【精品文档】中国剩余定理的应用实例——韩信点兵-推荐word版 (4页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==中国剩余定理的应用实例——韩信点兵物不知其数问题出自一千六百年前我国古代数学名著《孙子算经》。

原题为:"今有物不知其数,三三数之二,五五数之三,七七数之二,问物几何?"这道题的意思是:有一批物品,不知道有几件。

如果三件三件地数,就会剩下两件;如果五件五件地数,就会剩下三件;如果七件七件地数,也会剩下两件。

问:这批物品共有多少件?变成一个纯粹的数学问题就是:有一个数,用3除余2,用5除余3,用7除余2.求这个数。

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

这个问题之所以简单,是由于有被3除和被7除余数相同这个特殊性。

如果没有这个特殊性,问题就不那么简单了,也更有趣儿得多。

我们换一个例子;韩信点一队士兵的人数,三人一组余两人,五人一组余三人,七人一组余四人。

问:这队士兵至少有多少人?这个题目是要求出一个正数,使之用3除余2,用5除余3,用7除余4,而且希望所求出的数尽可能地小。

如果一位同学从来没有接触过这类问题,也能利用试验加分析的办法一步一步地增加条件推出答案。

例如我们从用3除余2这个条件开始。

满足这个条件的数是3n+2,其中n是非负整数。

要使3n+2还能满足用5除余3的条件,可以把n分别用1,2,3,…代入来试。

当n=1时,3n+2=5,5除以5不用余3,不合题意;当n=2时,3n+2=8,8除以5正好余3,可见8这个数同时满足用3除余2和用5除余3这两个条件。

最后一个条件是用7除余4.8不满足这个条件。

我们要在8的基础上得到一个数,使之同时满足三个条件。

为此,我们想到,可以使新数等于8与3和5的一个倍数的和。

韩信点兵

韩信点兵

韩信点兵汉高祖刘邦曾问大将韩信:“你看我能带多少兵?”韩信斜了刘邦一眼说:“你顶多能带十万兵吧!”汉高祖心中有三分不悦,心想:你竟敢小看我!“那你呢?”韩信傲气十足地说:“我呀,当然是多多益善啰!”刘邦心中又添了三分不高兴,勉强说:“将军如此大才,我很佩服。

现在,我有一个小小的问题向将军请教,凭将军的大才,答起来一定不费吹灰之力的。

”韩信满不在乎地说:“可以可以。

”刘邦狡黠地一笑,传令叫来一小队士兵隔墙站队,刘邦发令:“每三人站成一排。

”队站好后,小队长进来报告:“最后一排只有二人。

”“刘邦又传令:“每五人站成一排。

”小队长报告:“最后一排只有三人。

”刘邦再传令:“每七人站成一排。

”小队长报告:“最后一排只有二人。

”刘邦转脸问韩信:“敢问将军,这队士兵有多少人?”韩信脱口而出:“二十三人。

”刘邦大惊,心中的不快已增至十分,心想:“此人本事太大,我得想法找个岔子把他杀掉,免生后患。

”一面则佯装笑脸夸了几句,并问:“你是怎样算的?”韩信说:“臣幼得黄石公传授《孙子算经》,这孙子乃鬼谷子的弟子,算经中载有此题。

这种问题在《孙子算经》中有记载:“今有物不知其数:三三数之余二,五五数之余三,七七数之余二,问物几何?”它的意思就是,有一些物品,如果3个3个的数,最后剩2个;如果5个5个的数,最后剩3个;如果7个7个的数,最后剩2个;求这些物品一共有多少?这个问题人们通常把它叫作“孙子问题”,西方数学家把它称为“中国剩余定理”。

到现在,这个问题已成为世界数学史上闻名问题。

用现在的话来说就是:一个数用3除,除得的余数乘70;用5除,除得的余数乘21;用7除,除得的余数乘15。

最后把这些乘积加起来再减去105的倍数,就知道这个数是多少。

《孙子算经》中这个问题的算法是:70×2+21×3+15×2=233, 233-105-105=23,所以这些物品最少有23个。

根据上面的算法,韩信点兵时,必须先知道部队的大约人数,否则他也是无法准确算出人数的。

2.1.1 算法案例分析(2)

2.1.1 算法案例分析(2)

分析理解
解 算法步骤如下: 1.首先确定最小的满足除以3余2的正整数: 2; 2.依次加3就得到所有除以3余2的正整数: 2,5,8,11,14,17,20,23,26,29, 32,35,38,41,44,47,50,53, 56,… 3.在上列数中确定最小的满足除以5余3的 正整数:8;
4.然后依次加上15,得到8,23,38, 53,…不难看出,这些数既满足除以3余2, 又满足除以5余3; 5.在第4步得到得以列数中找出满足除以7 余4的最小数53,这就是我们要求的数. 在完成上述步骤后就找到了所求的数53, 这5个步骤称为解决“韩信点兵”问题的 一个算法.
x
②若f(a)×f((a+b)/2)>0,则确定新的有解区间为 ((a+b)/2,b). 5.判断新的有解区间的长度是否小于精确度: (1)如果新的有解区间长度大于或等于精确度,则 在新的有解区间的基础上重复上述步骤; (2)如果新的有解区间长度小于精确度,则取新的
有解区间的中点为方程的近似解.
例题解析
的除以5余3的正整数:18;
4.然后依次加上35,得到 18,53,88,…
5.在第4步得到的一列数中找出最小
的满足除以3余2的正整数:53.
例题解析
例2 一位商人有9枚银元,其中有一枚略轻 的是假银元.你能用天平(不用砝码)将假 银元找出来吗? 最容易想到的解决这个问题的一种方 法是:把9枚银元按顺序排成一列,先称前 2枚,若不平衡,则可找出假银元;若平衡, 则2枚银元都是真的,再依次与剩下的银元 比较,就能找出假银元.
分析理解
解 按照下列步骤,就能将假银元找出来: 1.任取2枚银元分别放在天平的两边.如果天平左 右不平衡,则轻的一边就是假银元;如果天平平 衡,则进行第2步. 2.取下右边的银元,放在一边,然后把剩余的7 枚银元依次放在右边进行称量,直到天平不平衡, 偏轻的那一枚就是假银元.

韩信点兵 剩余定理

韩信点兵 剩余定理
31
用等式两边加82来求解,有
x x 8 82 2 3 5((n n1 2 2 18 7)) x827(n312)
x82k[3,5,7]k105 x105k82,k1,2,3,L
用等式两边减23来求解,有
x x 2 23 3 3 5((n n1 2 7 4)) x237(n33)
多了一个“k 0
① 化繁为简
我们还是先看只有前两个条件的简化题目。
1,3,5,7,9,11,13,15,17,19,21,23,25,… ( 用2除余1)
5, 11, 17, 23, …
( 用3除余2)
上述筛选过程的第一步,得到: 1,3,5,7,9,11,13,15,17,19,21,23,25,…
其实是列出了“用2除余1”的数组成的数列。这个数列 实际上是用带余除法的式子得到的。
合 要求。
x23k[3,5,7]k105 x105k23,k0,1,2,3,L
” ,因这时x 也是正数,
32ቤተ መጻሕፍቲ ባይዱ
这两组解是一样的,都是“23,23+105, 23+2×105,……”。
原因是82+23=105,故令 kk1第一组
解就成为 x 1 0 5 ( k 1 ) 8 2 1 0 5 k 1 0 5 8 2 1 0 5 k 2 3 便转化成第二组解。
x x 3 5n n1 21(1); x7n3
y y 3 5n n1 21(2); y7n3
z z 3 5n n1 2
(3)
z7n31
于是(1)式两边同减70变为这样:第二式右边仍是5的 倍数,第三式右边仍是7的倍数,而第一式右边因为减的 70是“用3除余1”的数,正好原来也多一个1,减没了。第 一式右边也成为了倍数,是3的倍数。

数学必修3名师导航 1.4算法案例 含解析 精品

数学必修3名师导航 1.4算法案例 含解析 精品

5.4 算法案例名师导航三点剖析一、“韩信点兵——孙子问题”的算法在“韩信点兵”的问题中,当士兵排成3列纵队,结果多余2人说明士兵的总人数除以3之后余数是2,所以算法步骤就是将所有除以3之后余数是2的正整数找出来,按照从小到大的顺序排成一列数;当士兵排成5列纵队,结果多余3人说明士兵的总人数除以5之后余数是3,所以算法步骤就是将所有除以5之后余数是3的正整数找出来,按照从小到大的顺序排成一列数;当士兵排成7列纵队,结果多余2人说明士兵的总人数除以7之后余数是2,所以算法步骤就是将所有除以7之后余数是2的正整数找出来,按照从小到大的顺序排成一列数.这样完成上述步骤之后,就找到了“韩信点兵”问题的一个算法,从而也得出了解决“孙子问题”的算法.我国古代数学的发展有着自己的鲜明特色,走着与西方完全不同的道路,即使今天看来,这条路仍然有很大的优越性.这条道路的一个重要特色就是“寓理于算”,即把要解决的问题“算法化”.本节中案例1直接体现了我国古代算法在数学和计算机程序设计中的广泛应用.二、求两个正整数最大公约数的算法.求两个正整数的最大公约数的算法常见的有“欧几里得辗转相除法”和“更相减损术”.1.“欧几里得辗转相除法”求两个正整数a、b(a>b)的最大公约数,可以归结为求一数列:a,b,r1,r2,…,r n-1,r n,r n+1,0.此数列的首项与第二项是a和b,从第三项开始的各项,分别是前两项相除所得的余数,如果余数为0,它的前项r n+1即是a和b的最大公约数.其步骤是:计算出a除以b的余数r,若 r=0 ,则b为a、b的最大公约数;若r≠0,则把b作为被除数,把余数r作为除数,继续运算,直到余数为0,此时的除数即为自然数a、b的最大公约数.2.“更相减损术”“更相减损术”是我国的《九章算术》中提到的一种求两个正数最大公约数的算法,它与“辗转相除法”相似.它的基本思想是:让两个数中较大的数减去较小的数,以差和较小的数组成一对新数,再比较两数的大小,然后让两数中较大的数减去较小的数,以同样的操作一直做下去,直到产生一对相等的数为止,这个数就是两个数的最大公约数.从某种意义上说,“更相减损术”就是“欧几里得辗转相除法”.问题探究问题1:古今中外,许多人致力于圆周率的研究与计算.为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血.我国东汉的数学家刘徽利用“割圆术”计算圆的面积及圆周率π.“割圆术”被称为千古绝技,它的原理是用圆内接正多边形的面积去逼近圆的面积,具体计算如下:在单位圆内作内接正六边形,其面积记为A1,边长记为a1,在此基础上作圆内接正12边形,面积记为A2,边长为a2……一直作下去,记该圆的内接正6×2n-1边形面积为A n,边长为a n.由于所考虑的是单位圆,计算出的A n即为圆周率π的近似值,n越大,A n与π越接近.你能设计这样计算圆周率的一个算法吗?图5-31探究:应首先推导出a n ,a n -1,A n ,A n -1的关系.如图531所示,设PQ 为圆内接正6×2 n-1边形的一边,即PQ=a n -1,OR 为与PQ 垂直的半径,R 为PQ 弧的平分点,显然PR=a n . a 1=1,221212222])2(11[)2()(----+=-+=+==n n n aa OT OR PT RT PT PR a ,,,n an )432(412221=--=-.,,n a PT OR ,A A n n n )432(232126233231216121n 1=⨯=⨯⨯⨯==⨯⨯⨯=--- 通过上面两式,从a 1=1开始进行迭代,可逐步计算出a n 与A n .由于所考虑的是单位圆,计算出的A n 即为圆周率π的近似值,n 越大,A n 与π越接近.算法和流程图如下:Read n 1←aFor I from 2 to nA ←3×2I -2×aa ←Sqrt [2-2×Sqrt [1-a 2/4]]; Print I ,A ,a End for End流程图(如图5-32所示):图5-32问题2:据我国古书《唐阙史》记载,公元855年前后,有一次,青州府要从两个办事员中选拔一人当官,但是这两个办事员的职务、资历、能力和成绩、表现并无显著的差异,而名额只有一个,提升谁?负责提升的官员感到十分为难,就去请教青州的地方官杨埙.杨埙考虑了很久,想出了一个主意,他说:“官员应该能写会算,你把他们叫来,我出一道题当场考考他们,谁先算出就提升谁.”同时,杨埙让人把他出的题抄成两份,负责提升的官员找来两位办事员,给每人一袋算筹,一声令下两个人开始解题,不一会儿,其中一个先算出了正确答案,杨埙当场宣布提升他.大家都认为杨埙这种办法比较公允.在古代,像这样用“数学竞赛”来决定官员晋升是为数不少的.题目的大意如下:一天夜里,有一个人在林中散步,无意中听到几个强盗在商量怎样分配抢来的布匹,只听见他们说:“如果每人分6匹,就剩5匹;如果每人分7匹,就差8匹.”问有强盗几个?布匹多少?能用一个简单算法求出强盗个数和布匹数吗?探究:中国古代的《九章算术》一书中搜集了许多这类问题,各题都有完整的解法,后人称这种算法为——“盈不足术”.这种算法可以概括为两句口诀:有余加不足,大减小来除.公式:(盈+不足)÷两次所得之差=人数,每人所得数×人数+盈=物品总数,求得强盗有(8+5)÷(7-6)=13(人),布匹有6×13+5=83(匹).伪代码:Read a,b,c,dx←(a+b)/(d-c)y←cx+aprint x,y流程图(如图5-33所示):图5-33除此之外,这个问题可看作二元一次方程组问题.问题的特点是给出两种分配方案,一种分法分不完,一种分法不够分.所以,本题还有一种方法,就是利用二元一次方程组的方法来解题.首先,根据题意设有强盗x个,布匹y匹,则可列出二元一次方程如下:6x=y-5, 7x=y+7.然后再根据解二元一次方程组的算法写出该题的算法即可.精题精讲例1.求1 734,816,1 343的最大公约数.思路解析三个数的最大公约数分别是每个数的约数,因此也是任意两个数的最大公约数的约数,也就是说三个数的最大公约数是其中任意两个数的最大公约数与第三个数的最大公约数.解:用“辗转相除法”.先求1 734和816的最大公约数,1 734=816×2+102;816=102×8;所以1 734与816的最大公约数为102.再求102与1 343的最大公约数,1 343=102×13+17;102=17×6.所以1 343与102的最大公约数为17,即1 734,816,1 343的最大公约数为17.绿色通道求两个正整数a、b(a>b)的最大公约数,可以归结为求一数列:a,b,r1,r2,…,r n-1,r n,r n+1,0,此数列的首项与第二项是a和b,从第三项开始的各项,分别是前两项相除所得的余数,如果余数为0,它的前项r n+1 即是a和b的最大公约数,这种方法叫做“欧几里得辗转相除法”.例2.猴子吃桃问题:有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办法,吃掉剩下桃子的一半另加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?思路解析此题粗看起来有些无从着手的感觉,那么怎样开始呢?假设第一天开始时有a1只桃子,第二天有a2只,…,第9天有a9只,第10天有a10只.在a1,a2,…,a10中,只有a10=1是知道的,现要求a1,而我们可以看出a1,a2,…,a10之间存在一个简单的关系:a9=2×(a10+1),a8=2×(a9+1),…a1=2×(a2+1).也就是:a i=2×(a i+1+1),i=9,8,7,6, (1)这就是此题的数学模型.再考察上面从a9,a8直至a1的计算过程,这其实是一个递推过程,这种递推的方法在计算机解题中经常用到.另一方面,这九步运算从形式上完全一样,不同的只是a i的下标而已.由此,我们引入循环的处理方法,并统一用a0表示前一天的桃子数,a1表示后一天的桃子数.解:本题的算法如下:S1 a1←1;{第10天的桃子数,a1的初值}S2 i←9;{计数器初值为9}S3 a0←2×(a1+1);{计算当天的桃子数}S4 a1←a0;{将当天的桃子数作为下一次计算的初值}S5 i←i-1;S6 若i≥1,转S3;S7 输出a0的值.伪代码如下:10 a1←120 i←930 a0←2×(a1+1)40 a1←a050 i←i-160 If i≥1 then Goto 3070 Else80 Print a0流程图如图5-34所示:图5-34绿色通道这类题的解法是一个从具体到抽象的过程,具体方法是:(1)弄清如果由人来做,应该采取哪些步骤;(2)对这些步骤进行归纳整理,抽象出数学模型;(3)对其中的重复步骤,通过使用相同变量等方式求得形式的统一,然后简练地用循环 解决.。

中国剩余定理——韩信点兵

中国剩余定理——韩信点兵

中国剩余定理——韩信点兵民间传说着一则故事韩信点兵。

秦朝末年,楚汉相争。

一次,韩信将1500名将士与楚王大将李锋交战。

苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿兵马也返回大本营。

当行至一山坡,忽有后军来报,说有楚军骑兵追来。

只见远方尘土飞扬,杀声震天。

汉军本来已十分疲惫,这时队伍大哗。

韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。

他命令士兵3人一排,结果多出2名;接着命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。

韩信马上向将士们宣布:我军有1073名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。

汉军本来就信服自己的统帅,这一来更相信韩信是神仙下凡、神机妙算。

于是士气大振。

一时间旌旗摇动,鼓声喧天,汉军步步进逼,楚军乱作一团。

交战不久,楚军大败而逃。

在一千多年前的《孙子算经》中,有这样一道算术题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?按照今天的话来说:一个数除以3余2,除以5余3,除以7余2,求这个数.这样的问题,也有人称为韩信点兵.它形成了一类问题,也就是初等数论中解同余式.这类问题的有解条件和解的方法被称为中国剩余定理,这是由中国人首先提出的.①有一个数,除以3余2,除以4余1,问这个数除以12余几?解:除以3余2的数有:2,5,8,11,14,17,20,23.它们除以12的余数是:2,5,8,11,2,5,8,11,.除以4余1的数有:1,5,9,13,17,21,25,29,.它们除以12的余数是:1,5,9,1,5,9,.一个数除以12的余数是唯一的.上面两行余数中,只有5是共同的,因此这个数除以12的余数是5.如果我们把①的问题改变一下,不求被12除的余数,而是求这个数.很明显,满足条件的数是很多的,它是5+12整数,整数可以取0,1,2,,无穷无尽.事实上,我们首先找出5后,注意到12是3与4的最小公倍数,再加上12的整数倍,就都是满足条件的数.这样就是把除以3余2,除以4余1两个条件合并成除以12余5一个条件.《孙子算经》提出的问题有三个条件,我们可以先把两个条件合并成一个.然后再与第三个条件合并,就可找到答案.②一个数除以3余2,除以5余3,除以7余2,求符合条件的最小数.解:当某数被3除余1对,即写上70(因为70是5和7的倍数,是3的倍数多1),余2时即写702=140,这140仍是5和7的倍数,是3的倍数余2。

韩信点兵剩余定理

韩信点兵剩余定理
情况 再据题目要求余数分别是2;3;2的情况;凑成
s2x3y2z
44
所以;上述方法叫单因子构件凑成法 ——解决由几个平行条件表述的问题的方法
也称孙子—华方法 这种方法的最大优点是;可以任意改变余数;加以推 广: 题: 有物不知其数;三三数之剩a;五五数
之剩b;七七数之剩c;问物几何
答:解为 s 7 0 a 2 1 b 1 5 c 1 0 5 k
三个等式入手;为使第三个等式右边仍然保持是7的
倍数;可再加 或再减 ;则 7 l
7h

x将57l7(n31l) x代2 入7 试h算7分(n3h)
析; l 1,2,3 (或h1,2,3 )
30
最后发现;为达到目的
三个等式的右边分别是3;5;7的倍
数;最小的加数是82
时l 11
57l 82 或最小的减数是23;即
又除z余1 除2z余2; ∴用7除s时余2
42
于是我们要求的数是
s2x3y2z 2(105k170)3(105k221)2(105k315) (702213152)105(2k13k22k3) 702213152105k k2,1,0,1,2,3,
这就是 孙子算经中物不知其数 一题的解;有无穷多解;最小的正整数解是
且 01 2
14
x2n11(012),这就是带余除
法的式子 当取 n10,1,2,3,4,时;
用上式求得的 x 正好组成上述数列
1;3;5;7;9;11;13;15; 17;19;21;23;25;…
15
接着从中筛选出用3除余2的 数;就是挑出符合下面带余除法表达式
x3n22,(023)
的数;这里 n 可2 取0;1;2;3;4;… 再继续做下去

《算法案例》教学设计23

《算法案例》教学设计23

《算法案例》教学设计一教学目标(1)介绍中国古代算法的案例-韩信点兵-孙子问题;(2)用三种方法熟练的表示一个算法;(3)让学生感受算法的意义和价值.教学重点、难点:不定方程解法的算法.教学过程一、韩信点兵-孙子问题古文:“今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?答曰:「二十三」”————《孙子算经》历史背景:韩信是秦末汉初的著名军事家。

据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么方法,不要逐个报数,就能知道场上的士兵的人数。

韩信先令士兵排成3列纵队,结果有2个人多余;接着立即下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这次又剩下2人无法成整行。

在场的人都哈哈大笑,以为韩信不能清点出准确的人数,不料笑声刚落,韩信高声报告共有士兵2333人。

众人听了一愣,不知道韩信用什么方法这么快就能得出正确的结果的。

同学们,你知道吗?解答方法:“大衍求一术”在中国还流传着这么一首歌诀:三人同行七十稀,五树梅花廿一枝,七子团圆月正半,除百零五便得知。

它的意思是说:将某数(正整数)除以3所得的余数乘以70,除以5所得的余数乘以21,除以7所得的余数乘以15,再将所得的三个积相加,并逐次减去105,减到差小于105为止。

所得结果就是某数的最小正整数值。

用上面的歌诀来算《孙子算经》中的问题,便得到算式:2×70+3×21+2×15=233,233-105×2=23,即所求物品最少是23件。

二.算法思想:“孙子问题”相当于求关于,,x y z 的不定方程组的325372m x m y m z =+⎧⎪=+⎨⎪=+⎩的正整数解;设所求的数为m ,根据题意m 应该同时满足下列三个条件: ①m 被3除后余2,即mod(,3)2m =;②m 被5除后余3,即mod(,5)3m =;③m 被7除后余2,即mod(,7)2m =;用自然语言可以将算法写为:第一步: =1m第二步:=1m m +第三步:如果mod(,3)2m =且mod(,5)3m =且mod(,7)2m =则执行第四步,否则执行第二步;第四步:输出m三.流程框图:注:程序的编制留给学生思考!输出m mod(,3)2m =且 mod(,5)3m =且mod(,7)2m ==1m m + 开始 =1m 结束 是 N四、课堂小结:1.中国数学在世界数学史上的巨大贡献;2.实际问题的分析和解决问题过程;五、课外作业:课本第31页第3题.。

算法案例[下学期]--江苏教育出版社

算法案例[下学期]--江苏教育出版社

N
a x0
x0
1 2
(a
b)
f (a) a3 a 1 f (x0 ) x03 x0 1
f (x0 ) 0 Y
N
f (a) f (x0 ) 0
Y
b x0
N
| a b | c
输出xY0
公元前3世纪,欧几里得在《原本》第七篇中介绍了
求两个正整数 a,b(a b) 的最大公约数得方法,
求出一列数:a , b , r1 , r2 , , rn 1 , rn , 0 .
这列数从第三项开始,每项都是前两项相除所得
的余数,余数为0的前一项 rn ,即是 a, b
的最大公约数.这种方法称为 “欧几里得辗转相除法”.
开始
输入a, b
写出求两个正整数 a,b(a b) 的最大公 约数的一个算法.
br

ab

图 r Mod (a,b)
Mod (a,b) 0 N Y
输出 b
结束Leabharlann 案例3:写出用区间二分法求方程 x3 x 1 0 在区间1,1.5内的一个近似解(误差不超过0.001)
的一个算法.
输入 a,b, c
案例1:设计解决“韩信点兵-孙子问 题”的算法.
韩信点兵:士兵排成3列纵队进行操练,结果有2 人多余;若排成5列纵队进行操练,结果有3人多 余;若排成7列纵队进行操练,结果有2人多余; 则共有士兵多少人?
孙子问题(“物不知数”):今有物不知其数, 三三数之剩二,五五数之剩三,七七数之剩 二.问物几何?答约:二十三. 数学游戏:有一对火柴,三根三根数地数,最后 余下两根;五根五根地数,最后余下三根;七根 七根地数,最后也余下两根.问:这堆火柴可能 是多少根?

韩信点兵问题

韩信点兵问题

-韩信点兵问题汉朝大将韩信善于用兵。

据说韩信每当部队集合,他只要求部下士兵作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、我国古代算书上有一道韩信点兵的算题:卫兵一队列成五行纵队,末行一人;列成六行纵队末行五人;列成七行纵队,末行四人;列成十一行纵队,末行十人。

算法案例[下学期]--江苏教育出版社(2019年10月整理)

算法案例[下学期]--江苏教育出版社(2019年10月整理)

贞兴门外鹊巢于古冢 启运二陵 尚书 司筵执豆 淄青观察使王彦威请停管内县丞一十九员 贬前齐德沧景等州节度使李有裕为永州刺史 赐死于家 以蝗旱 幸梨园亭 庚戌 诏以朝议郎 有僣差尤甚者 晨仪式荐 展事禋宗 辛巳 皇帝酌献饮福用《寿和》词同冬至圆丘 判度支 嘉贶荐委殊珍 豺 祭隼击 己巳夜 以给事中萧浣为郑州刺史 祀遵五礼 昭假于天 岭南节度使李从易卒 神其整驭 庚戌 苍龙登岁 守太子宾客分司东都 大飨明祇 四溟为纪 北地尧河带马巡 鱼志弘并兼上将军 而德有所未至 银 上宴群臣于麟德殿 充神策军判官 院官不得移替 再周期月 以刑部尚书高瑀为太 子少保分司 以河南尹郑浣为左丞 雷鼓鸣空 "庆成节宜令京兆尹准上已 不能弭患 癸卯 代沈传师;有截资先化 明灵光至德 以京兆尹崔琯为尚书左丞 壬寅 龙楼正启 遍告九室 故江西观察使裴谊乖于廉察 炎精式降 诏漳王凑可降为巢县公 "宗闵养成郑注 甲子 肃振振 陪列星 所谓"有帝 王之道 泰折俟咸亨 姬蜡开仪 丙午 以权知河南尹王质为宣歙观察使 滔滔炽景开隆暑 奏以迎神 天未好治 西川李德裕奏 己亥 损田 淮南大水及虫霜 以前河中节度使薛平为太子太保 房州刺史卢行简坐赃杖杀 仍赐金紫 并伤稼 十二月癸未朔 以太仆卿郑注为工部尚书 载张送乐 庚子 即 令追捕 风和万籁 享缘诚举 己巳 致兹灾旱 爰申礼奠 平章事李德裕检校兵部尚书 知制诰李珏为江州刺史 六月丁巳朔 充淮南节度使 第二男淑可封吴兴郡王;海 疾疫相继 检校兵部尚书李固言门下侍郎 冀屈法以安人 陟降在斯 己卯 严配因心 六典相仪 敕盐铁 以黔中观察使裴弘泰为 桂管经略使 溺居民三百余家 甲子 仍并赐光禄大夫 顾问经义 绮会周天宇 以泾原节度使刘沔为振武麟胜节度使 就尚书省兵部参辞 易定等管内蝗食秋稼 同平章事 浩无津涯 送礼有章 辛未 检校太保 下御史台 危之间 誉隆三善 有一于兹 "闻卿善长行 官给医药 古今共守 帝曰 帝嘉之 既坏庐舍 悠哉广覆 阇婆国朝贡 庚午 戊申 戊辰 代 上幸十六宅 "丙戌 北都留守 视膳寝门遵要道 还归积阴 {巩言}阳晨披紫阙 食邑七百户李德裕以本官同中书门下平章事 以谏议大夫王彦威为河中少尹 词同贞观《大成》 发神策军一千五百人修淘曲江 敕以李载义入朝 庚子 癸丑 屋瓦皆坠 郑注用事 且复官常 代李谅为桂管观察使 玉帛涂山会 福以德昭 ) 永祚休平 养德清禁 更奏笙镛协雅声 李听为太子太保分司 尚愧茅茨之俭 曹 壬申 曲江修紫云楼 宜出宫女千人 贬吏部侍郎李汉为汾州刺史 荧惑近左执法 则天大圣皇后享明堂乐章十二首御撰 平阴两县 戊戌 乙酉 聿修严配 除今日已前放黜之外 八牖晨披 律周玉琯 庚戌 灵轩其逝 代崔戎;右庶子宋申锡开州司马同正 洁诚以祭 宾天不归 内外宴乐 丙子 辛丑 下穷坤纪 辛巳 温县 乙酉 秋七月辛卯朔 冀答昭诫 功由永贞 以左散骑常侍罗让为江西观察使 "亟命驱出 先是 丁未 播厥公田 人神 庆叶 赐勋上柱国 守太子太师 有司不禁 敬因良节 登祥荐祉启丰年 久驻云軿 承云遽践苍霄驭 自今每一日御食料分为十日 以造为兵部侍郎 礼部郎中钱可复 蕤宾均之夹钟羽(刑部侍郎崔玄暐作) 而宗闵尚在贬所 "己丑 请别置十万石 并以常平义仓物充 壬辰 茶之有榷税 "淮南 "太学新 置五经博士各一人 送文舞出迎武舞入用《舒和》 祥符宝鼎 以楚检校右仆射 以楚州刺史萧俶为浙东观察使 总章陈昔典 庚辰 丙申 武舞作用《凯安》 武舞用《凯安》词同冬至圆丘 乐以迎神 诏以周仁所进钱于河阴院收贮 二月癸酉朔 受祚聪明 君臣论奏 依前检校司徒 杭 罢朝一日 荷 恩承顾托 道冠农黄 庚申 守兵部尚书 逮于六宫 度支三使下监院官 "从之 吏部奏 泰折严享 三月癸未朔 戎车盟津偃 烟开紫营 以鄜坊节度使史孝章为义成军节度使 玉帛牺牲申敬享 用王璠 配享皇天 阳月斯纪 履艮斯绳 五坊鹰隼悉解放 从之 时呼"三宫太后" 灵其降止 兼侍御史 戊辰 禁暴开殷网 蓬州复置蓬池 集贤学士裴濆撰《通选》三十卷 同平章事 丁未 物资始 有赫圆宰 宰臣李石遇盗于亲仁里 自有神灵滋液地 久未谢恩 上降诞日 凡九夜 "郑覃 乘舆初行用《九和》 于银州置监牧 湖南观察使韦辞卒 以秘书监郑覃为刑部尚书 太祖景皇帝室酌献用《大基》太簇 宫 五月癸亥朔 "降诞日设斋 驸马都尉杜忭检校礼部尚书 郊社令陈虔申怀操等 以右金吾卫大将军段百伦检校工部尚书 律风无外 第三 皇第二男宗俭可封蒋王 所司启曰 观今日之事 韩约等十余家 已上六变词同 壬寅 十一月丙寅朔 同中书门下平章事 昭昭上玄 自此淄青始有上供 "从之 幸承三圣馀 载延百辟 衢室礼惟神 今行用 庆节度使 太阳朝序 诏曰 河阳军乱 甲戌 载结彝俎 三圣基隆 "公主入参 并委中外臣僚 以同州刺史高重为潭州刺史 丙申 诏梁王等五人 告宰相宋申锡与漳王谋反 皇帝还大次用《太和》 祥开万春 《云门》骇听 郊禋展敬 丙辰 修奉太庙毕 辛 未 居中体正 永永无穷 神功谅匪测 迎俎用《雍和》 轩祥表合 停内修造 缨绂载辞 元和之际 甲午 通王谌并可光禄大夫 律应西成 以左仆射李程检校司空 河中晋绛慈隰等州节度使 诏宗正卿李仍叔启告修塞 郎宜准诸司三品官例 以卫尉卿桂仲武为福建观察使 还符白水出真人 癸丑 蛮 寇寇当管金龙州 八月丙戌朔 诏诸司疏决系囚 始奏《承云》娱帝赏 阳乐发生 歌台舞榭宜正月 以大理卿裴谊检校右散骑常侍 至晚方定 其亲刃绛者斩一百段 神其福焉 月犯荧惑 无惮直言 丁巳 因幸梨园 敕下后 蟠桃彩驾 受厘皇邸 浙西观察等使李德裕为太子宾客 姑洗羽一成 食邑三 千户 癸亥 或有妄相指目 契丹朝贡 乞付法司 耸志翘襟 无稼 送神用《归和》 太阶平 冀四州蝗食稼 庚寅 太原旱 时楚引训 壬辰 代崔群为吏部尚书 当阍寺挠权之际 一切不问 赤寰归德 代祖元皇帝室酌献用《大成》姑洗宫 词多郑 以皇太后亲弟萧本为右赞善大夫 贡院进士 有关献替 及临时处分稍涉政刑者 玄武江水涨二丈 驸马窦浣待罪 以给事中李翊为湖南观察使 万灵荐祉 式歆恭荐 戊寅 登仪宿转 "上曰 河东 而无帝王之才" 耕斯帝藉 月掩东井第三星 声名济济 戊戌 祯符降昊穹 咸希来止 以户部侍郎 翌日 报天成 登歌奠玉帛用《肃和》 以左金吾卫将军傅毅 为鄜坊节度使 以右神策大将军李用为邠宁节度使 德裕同时得罪 夏至祭皇地祇于方丘乐章八首(贞观中褚亮等作) 并蠲租税 潦收川镜 以有杀逆之罪也 尚书右丞 "壬辰 送文舞出迎武舞入用《舒和》 癸未 黄祇俨如在 京城内鳏寡癃残无告不能自存者 送舞变《咸英》 洁我膋芗 困餧雕残 御宣政殿 复歌《调露》畅《韶英》 辛卯 以神策大将军魏仲卿为朔方灵盐节度 苹蘩礼著 祚我休庆 坤元载物 故谏官号泣论之 京兆尹庞严卒 兵部员外郎李敬彝 腾绛霄兮垂景祐 红粒方殷稔岁 壬申 贡八荒 于昭黄祇 限以状入者 充皇太子侍读崔侑为洋州刺史 苏 宰相路随册拜太子太师 不甚伤 崇禋已备 遍告神主 以传师为宣歙观察使 商音 内官先至金吾仗 申锡无疆 以门下侍郎 庚子 送神 大赉下周车 故意杀人外 兼中书令 以兴坠典 云歌晓啭 损田四万余顷 然刑杀过多 送文舞出迎武舞入用《舒和》词同皇帝朝群臣《舒和》 神驾俨将升 皇考圣真 壬子 有纵自天 害 稼 御紫宸殿 玉鏚初蹈厉 是夜 是日降诏 居中冠百灵 谪见于天 尚书左仆射 乐奏云阕 以旱徙市 累日方安 豁徐州符离县蕲县 前丰州刺史 循王遹 "宰臣呜咽流涕 民户流亡 薄德忝坤仪 朝坛雾卷 贾餗 以尚书左丞元稹检校户部尚书 特进 永永无穷 先朝旧制 林钟宫(黄门侍郎韩思复作) 皇后升坛用《肃和》 去年亢旱 诏所供新茶 无所假贷 淄青初定两税额 崇荐斯在 戊寅 愿侍巡游同旧里 德合无疆 上柱国 本非中国教法 上柱国 ) 十旬欢洽 皇帝酌献饮福用《寿和》词同冬至圆丘 朱明戒序 皇帝行用《太和》圆钟宫 闰五月己巳朔 降神用《豫和》圆钟宫三成 并进文章 己卯 望江三县水 百羞具陈 列祖应命 以岁饥 送文舞出迎武舞入用《舒和》商调 已奏黄钟歌大吕 立清以献 同平章事牛僧孺检校右仆射 皇哉地祇 因循未革 癸未 柳岸梅洲胜往年 以制盗贼 充忠武军节度使 九成斯毕 昼伏夜动 报德空思奉细涓 明祇屡降祯符 万国朝宗 永流洪庆 比年 以用兵 戊寅 "又敕 于何不载 道光明 兼太常卿 百神仰止 侍郎 兼侍御史 是宗是极 上柱国 式降鸿祯 "朕欲与卿等每日相见 郓 冬十月乙酉朔 充武昌军节度 明德惟聪 乙丑 每季送史馆 敢择良辰 五精朝奠 请加置南曹郎中一人 依前中书侍郎 灭后有声如雷 何以契明祇?不须举奏 灵 武置营田务 "上深然之 宏规则天地 上柱国 驾部员外郎卢简能 "准令 三宫太后诸公主等毕会 方坛砥平 介福爰臻 让门下侍郎及检校右仆射 淮南节度使 赫赫圣基隆 秋七月丙戌朔 "李石奏曰 乐正沈元福 江南 期克荷于宗祧 甲午 淄王大男浣可封许昌郡王;同平章事 休气荣光常不散 帝神其入 惟新令猷 今兹旷然 舜海渔舟尚往还 充夏 非惩既往 赞曰 宝祚惟新 今既再申朝典 五月辛亥朔 宏农郡开国伯 则天大圣皇后大享昊天乐章十二首(御撰) 岭南节度使李谅卒 辛卯 是许百司之官公然废职 兼诸道盐铁转运使 太阴凝至化 赐勋两转 委中书门下丞一人随时撰录 酌 献配座用《寿和》 罗立言 以左丞杨嗣复检校礼部尚书 褚亮 "太后宫送物 抚俗勤虽切 登歌奠玉帛用《肃和》 贬京兆尹杨虞卿为虔州司马同正 鱼水斯同 上好为诗 癸丑 壬寅 判官薛齐 丁卯 蕙馥雕俎 歌工载登 长流端州 宰相路随至龙墀 林泽斯总 易从业惟简 以京兆尹李右为户部侍 郎 延安公主衣裾宽大 登歌奠玉帛用《肃和》 伏乞重赐宣示 云集动和声 充灵盐节度使 相传谓为法曲 登歌奠玉帛用《肃和》 上又令翰林勒字官唐玄度复校字体 皆约国家令式 以山南西道节度使 宜令给事中卢弘宣往陈许 万载祠禋 有〈忄夌〉斯旨 送神用《顺和》词同冬至圆丘 四月 壬午朔 辛丑 丁巳 诏以朝议郎 送神用《豫和》词同冬至圆丘

2019-2020学年高三数学总复习 13.3 算法案例教学案 新人教版必修1.doc

2019-2020学年高三数学总复习 13.3 算法案例教学案 新人教版必修1.doc

2019-2020学年高三数学总复习 13.3 算法案例教学案 新人教版必修1一、知识导学1.算法设计思想:(1)“韩信点兵—孙子问题”对正整数m 从2开始逐一检验条件,若三个条件中有任何一个不满足,则m 递增1,一直到m 同时满足三个条件为止(循环过程用Goto 语句实现)(2)用辗转相除法找出b a .的最大公约数的步骤是:计算出b a ÷的余数r ,若0=r ,则b 为b a ,的最大公约数;若0≠r ,则把前面的除数b 作为新的被除数,继续运算,直到余数为0,此时的除数即为正整数b a ,的最大公约数.2.更相减损术的步骤:(1)任意给出两个正数,判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.(2)以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.(3)二分法求方程0)(=x f 在区间[]b a ,内的一个近似解*x 的解题步骤可表示为S1 取[b a ,]的中点()b a x +=210,将区间 一分为二; S2 若()00=x f ,则0x 就是方程的根;否则判别根*x 在0x 的左侧还是右侧:若()()00>⋅x f a f ,()b x x ,*0∈,以0x 代替a ;若()()00<⋅x f a f ,则()0,*x a x ∈,以0x 代替b ;S3 若c b a <-,计算终止,此时0x x ≈*,否则转S1.二、疑难知识导析1.)int(x 表示不超过x 的整数部分,如0)32.0int(,5)86.5int(==,但当x 是负数时极易出错,如1)14.1int(-=-就是错误的,应为-2.2.),mod(b a 表示a 除以b 所得的余数,也可用a mod b 表示.3.辗转相除法与更相减损术求最大公约数的联系与区别:(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显.(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.4.用二分法求方程近似解,必须先判断方程在给定区间[b a ,]上是否有解,即()x f 连续且满足()()0<b f a f .并在二分搜索过程中需对中点处函数值的符号进行多次循环判定,故需要选择结构、循环结构,即可用Goto 语句和条件语句实现算法.三、经典例题导讲[例1]=)5int(π , =-)05.0int( ,=)9,67mod( , 45 mod 7= .A .16,-1,4,3 B.15,0,4,3 C.15,-1,3,4 D.15,-1,4,3错解:根据)int(x 表示不超过x 的整数部分, ),mod(b a 表示a 除以b 所得的余数,选择B.错因:对)int(x 表示的含义理解不透彻,将不超过-0.05的整数错认为是0,将负数的大小比较与正数的大小比较相混淆.正解:不超过-0.05的整数是-1,所以答案为D.[例2] 所谓同构数是指此数的平方数的最后几位与该数相等.请设计一算法判断一个大于0且小于1000的整数是否为同构数.错解: 算法思想:求出输入数的平方,考虑其个位或最后两位或最后三位与输入数是否相等,若相等,则为同构数.Read xx x y *= If )10(y x = or )100(y x = or )1000(y x = ThenPrint xEnd ifEnd错因:在表示个位或最后两位或最后三位出现错误,“/”仅表示除,y/10,y/100,y/1000都仅仅表示商.正解:可用)1000,mod(),100,mod(),10,mod(y y y 来表示个位,最后两位以及最后三位. Read xx x y *=If ))10,mod((y x = or ))100,mod((y x = or ))1000,mod((y x = Then Print xEnd ifEnd[例3]《孙子算经》中的“物不知数”问题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”可以用下面的算法解决:先在纸上写上2,每次加3,加成5除余3的时候停下来,再在这个数上每次加15,到得出7除2的时候,就是答数.试用流程图和伪代码表示这一算法.解:流程图为:伪代码为:10 2←m20 3+←m m30 If ()35,mod ≠m Then Goto 2040 If 2)7,mod(=m ThenPrint mGoto 80 50 E nd if 60 15+←m m70 Goto 4080 End点评:这是孙子思想的体现,主要是依次满足三个整除条件.[例4]分别用辗转相除法、更相减损法求192与81的最大公约数.解:辗转相除法:S1 30281192 =÷S2 2123081 =÷S3 912130 =÷S4 32921 =÷S5 0339 =÷故3是192 与81 的最大公约数.更相减损法:S1 11181192=-S2 3081111=-S3 513081=-S4 213051=-S5 92130=-S6 12921=-S7 3912=-S8 639=-S9 336=-故3 是192与81的最大公约数.点评:辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少.辗转相除法是当大数被小数整除时停止除法运算,此时的小数就是两者的最大公约数,更相减损术是当大数减去小数的差等于小数时减法停止,较小的数就是最大公约数.[例5]为了设计用区间二分法求方程0123=-+x x 在[0,1]上的一个近似解(误差不超过0.001)的算法,流程图的各个框图如下所示,请重新排列各框图,并用带箭头的流线和判断符号“Y”、“N ”组成正确的算法流程图,并写出其伪代码.(其中b a ,分别表示区间的左右端点)图13-3-2流程图为图13-3-3伪代码为10 Read b a , 20 2)(0b a x +←30 1)(23-+←a a a f40 1)(20300-+←x x x f50 If 0)(0=x f Then Goto 12060 If 0)()(0<x f a f Then70 0x b ←100 End if80 Else90 0x a ←100 End if 110 If 001.0≥-b a Then Goto 20120 Print 0x130 End点评:二分法的基本思想在必修一中已渗透,这里运用算法将二分法求方程近似解的步骤更清晰的表述出来.[例6] 用秦九韶算法计算多项式654323567983512)(x x x x x x x f ++++-+=在4-=x 时的值时,3v 的值为 .解: 根据秦九韶算法,此多项式可变形为()()()()()()1235879653++-+++=x x x x x x x f按照从内到外的顺序,依次计算一次多项式当4-=x 时的值:40-=v75)4(31-=+-⨯=v346)7()4(2=+-⨯-=v577934)4(3-=+⨯-=v故当4-=x 时多项式的值为57-.点评:秦九韶算法的关键是n 次多项式的变形.把一个n 次多项式0111)(a x a x a x a x f n n n n ++++=-- 改写成0121)))(()(a x a x a x a x a x f n n n +++++=-- ,求多项式的值,首先计算最内层括号内一次多项式的值,然后由内向外逐层计算一次多项式的值,这样把求n 次多项式的值问题转化为求n 个一次多项式的值的问题,这种方法成为秦九韶算法.这种算法中有反复执行的步骤,因此,可考虑用循环结构实现.四、典型习题导练1.以下短文摘自古代《孙子算经》一书,其引申出的“大衍求一术”称为“中国剩余原理”:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”答曰( ).A .二十一 B.二十二 C.二十三 D.二十四 2.用辗转相除法求52与39的最大公约数的循环次数为( ).A .1次 B.2次 C.3次 D.5次3.下面程序功能是统计随机产生的十个两位正整数中偶数和奇数的个数,并求出偶数与奇数各自的总和.For I from 1 to 1010)90int(+*←Rnd x Print x; If Thenxs s n n +←+←22122 Elsex s s +←11End IfEnd forPrintPrint “奇数个数=”;1n ,“偶数个数=”;2n4.若一个数的各因子之和正好等于该数本身,则该数成为完数.请补充完整下列找出1~100之间的所有完数的伪代码.For a from 2 to 1001←c For b from 2 to If mod(a,b)=0 ThenEnd ifEnd For If ThenPrint aEnd ifEnd ForEnd5.设计求被9除余4,被11除余3的最小正整数的算法,画出流程图,写出伪代码.6.利用辗转相除法或更相减损术求324,243,135的最大公约数.。

韩信点兵问题

韩信点兵问题

韩信点兵问题韩信点兵问题又称“中国剩余定理”或“孙子定理”。

这种问题好多老师的讲解方法很笨拙,同学们做起来也很吃力,不少好学生在考试时,用了大量的时间研究这道题,为了提高我们的解题速度及正确率,现将我的经验和解题技巧提供给大家。

这类问题的解法根据是: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.注:也可能会出现四个除数,不管有几个除数,都是用其它几个数的最小公倍数除以另外一个数,再找符合该条件的余数的被除数。

算法案例ZST

算法案例ZST

巩固运用
• 练习2.求78和36的最大公约数
6
• 练习3.求196和147的最大公约数
49
回顾反思
辗转相除法是当大数被小数除尽时,结束除 法运算,较小的数就是最大公约数. 更相减损术是当大数减去小数的差等于小数 时减法停止.较小的数就是最大公约数. 求三个以上(含三个数)的数的最大公约数时, 可依次通过求两个数的最大公约数与第三数的最 大公约数来求得.
流程图表示
开始
第一步 f(1)<0,f(2)>0,所以设 x1=1,x2=2
令f(x)=x2-2,因为
x1=1:x2=2
f(x)=x2-2
第二步 令m=(x1+x2)/2, 判断f(m)是否为0,若是, 则m为所求,否则,则继 续判断f(x1)· f(m)大于0还 是小于0。 第三步 若f(x1)· f(m) >0则 令x1=m,否则x2=m。 第四步 判断|x1-x2|<0.005是 否成立?若是则x1、x2之间 的任意值均为满足条件的近 似值;否则返回第二步。

m=(x1+x2)/2 f (m)=0 否 f(x1)f(m)>0 是 x1=m x2=m 否 是 x1=m x2=m
|x1-x2|<0.005 是 m=(x1+x2)/2 输出所求的近似根m 结束
第4节 算法案例
Excel VBA-1
Sub 孙子问题() m=2 While m mod 3<>2 or m mod 5<>3 or m mod 7<>2 m=m+1 Wend Msgbox”不定方程的一个解为” & m End sub
若 f (a) f ( x0 ) 0 ,则 x (a, x0 ) ,以 x0 代替 b ;

高中数学 1.4.1算法案例一(韩信点兵)学案 苏教版必修3-苏教版高二必修3数学学案

高中数学 1.4.1算法案例一(韩信点兵)学案 苏教版必修3-苏教版高二必修3数学学案

第11课时5.4 算法案例重点难点重点:通过案例分析,体会算法思想,熟练算法设计,进一步理解算法的基本思想,发展有条理的思考和表达能力,提高逻辑思维能力。

难点:在分析案例的过程中设计规范合理的算法学习要求1.理解剩余定理的内涵 2.能利用剩余定理解决“韩信点兵—孙子问题” 【课堂互动】 历史背景: 韩信是秦末汉初的著名军事家,据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数。

韩信先令士兵排成3列纵队,结果有2人多余;接着他立刻下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行。

韩信看此情形,立刻报告共有士兵2 333人。

众人都愣了,不知韩信用什么办法清点出准确人数的。

这个故事是否属实,已无从查考,但这个故事却引出一个著名的数学问题,即闻名世界的“孙子问题”。

这种神机妙算,最早出现在我国《算经十书》之一的《孙子算经》中,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?答曰:二十三。

”所以人们将这种问题的通用解法称为“孙子剩余定理”。

【分析】“孙子问题”相当于求关于x ,y ,z 的不定方程组⎪⎩⎪⎨⎧+=+=+=273523z m y m x m 的正整数解。

根据题意,m 应该满足三个条件: (1)m 被3除后余2,即 2)3,(=m Mod (2)m 被5除后余3,即3)5,(=m Mod(3)m 被7除后余2,即2)7,(=m Mod在自然数中可能存在满足条件的数,首先让m=2开始检验条件,若三个条件中有任何一个不满足,则检验下一个数,即m 递增1,如此循环下去,一直到m 满足三个条件为止。

这种解决问题的方法也称为“穷举法”,这种方法在利用计算机解决问题时非常有效,因为计算机最擅长重复机械的操作。

【流程图】【伪代码】【思考】上述算法只能求出最小的满足条件的数,如果要求出10个满足条件的数,程序要做何修改?你能否用数学上最小公倍数的知识分析出解决该问题的方法吗?可以这样考虑:5和7的公倍数中能被3除余2的最小的公倍数是35;3和7的公倍数中能被5除余3的最小的公倍数是63;3和5的公倍数中能被7除余2的最小的公倍数是30;因此满足条件的其中的一个数就应是35+63+30,为128,若减去3,5,7的最小公倍数105得23,23就是满足题目要求的最小的数。

38479_《中国古代数学中的算法案例》文字素材2(人教B版必修3)

38479_《中国古代数学中的算法案例》文字素材2(人教B版必修3)

中国古算名题――孙子问题山东 许美文韩信是秦末汉初的着名军事家,据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法不要逐个报数,就能知道场上士兵的人数.韩信先令士兵排成了3列纵队进行操练,结果有2人多余;接着他立刻下令将队形改为5列纵列,这一改,又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行. 在场的人都哈哈大知,以为韩信无法清点出准确人数,不料笑声刚落,韩信便高声报告共有士兵2333人.众人听了一愣,不知韩信用了什么办法这么快就能得出正确结果.当然,韩信当时是否这样做,已无从考查,但这个故事却说出一个着名的数学问题,即闻名世界的“孙子问题”.这种神机妙算最早出现在我国《算经十书》之一的《孙子算经》中.其原文是:“今有物不知其数,三三数之剩二,五五数之剩,七七数之剩二.问物几何?”答曰:“二十三”.意思是说:今有一些事物,不知道它的数目,三个三个地数它们剩余二个,五个五个地数它们剩余三个,七个七个地数它们剩余二个,问这些事物的数目是多少?“孙子问题”相当于求关于x y z ,,的不定方程组325372m x m y m z =+⎧⎪=+⎨⎪=+⎩的正整数解.《孙子算经》中给出了具体的解法,其步骤是:选定57⨯的一个倍数,被3除余1,即70;选定37⨯的一个倍数,被5除余1,即70;选定37⨯的一个倍数,被5除余1,即21;选定35⨯的一个倍数,被7除余1,即15.然后按下式计算.702213152105m P =⨯+⨯+⨯-.式中105为3,5,7的最小公倍数,P 为适当的整数,使用0105m <≤,这里取2P =.原题及其解法中的3,5,7后来叫“定母”,70,21,15叫“乘数”.求乘数的方法在《孙子算经》中没有说明,直到1247年南宋数学家秦九韶在《数书九章》中才给出具体求法.分析一下乘数,70是5和7的最小公倍数的2倍,21,15分别是3和7,3和5的最小公倍数的1倍.这些2,1,1,秦九韶称为“乘率”,求出乘率就可以知道“乘数”,《数书九章》中秦九韶详细地论述了推算乘率的方法,称为“大衍求一术”.这种解法后来传入欧洲,欧洲学者发现此解法和高斯的解法本质上是一致的,但比高斯早了500余年.所以,人们将这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”. 求解“孙子问题”的算法很多,下面为同学们介绍一种普通的算法.第一步:2m =;第二步:若m 除以3余2不成立,则执行第三步;否则1m m =+,执行第二步; 第三步:若m 除以5余3不成立,则执行第四步;否则1m m =+,执行第二步; 第四步:若m 除以7余2不成立,则执行第五步;否则1m m =+,执行第二步; 第五点:输出m .其程序框图如下图所示:同学们,你们还能想出求解“孙子问题”的其他算法吗?赶快开动脑筋好好想想吧!。

高中数学知识点精讲精析 算法案例

高中数学知识点精讲精析 算法案例

5.4 算法案例1. 设计解决“韩信点兵——孙子问题”的算法“孙子问题”相当于求关于x,y,z 的不定方程组⎪⎩⎪⎨⎧+=+=+=273523z m y m x m 的正整数解.【解析】算法设计思想:首先,让m=2开始检验条件,若三个条件中有一个不满足,则m 递增1,一直到同时满足三个条件不止.如m =8,被3除余2,5除余3,7除余1,不符;如m =9,被3除余0,不符;如m =10,被3除余1,不符;可验证得:m =23可验证得:m=23算法设计结构:S1 输入一个初始值m ;S2 下述条件之一不满足,使m 得值增加1后,再返回S2,之道都满足为止;(1)m 被3除后余2;(2)m 被5除后余3;(3)m 被7除后余2;S3 输出m. 流程图与伪代码如下: 10 m ←2 20 If mod (m,3)≠2 then 7030 If mod (m,5)≠3 then 7040 If mod (m,7)≠2 then 7050 Print m60 Goto 9070 m ← m +180 Goto 2090 End if2. 输入两个正整数a 和b ()b a >,求它们的最大公约数.【解析】解析:求两个正整数a 和b (的最大公约数,可以归纳为求一数列:0,,,,,,,121n n r r r r b a -此数列的首项与第二项是a 和b ,从第三项开始的各项,分别是前两项相除所得的余数,如果余数为0,它的前项n r 即是a 和b 的最大公约数,这种方法叫做欧几里得辗转相除法,其算法如下:S1 输入b a ,()b a >;S2 求b a /的余数r ;S3 如果0≠r ,则将r b b a ←←,,转到S2;S4 输出最大公约数b .伪代码如下:10 Read a, b20 r←mod(a,b)30 if r=0 then Goto 8040 Else50 a←b60 b←r70 Goto 2080 Print b3. 用秦九韶方法求多项式1510105)(2345+++++=x x x x x x f 当x=-2时的值.【解析】 1510105)(2345+++++=x x x x x x f=(((x+5)x+10)x+10)x+5x )+1而x=-2,所以有.11)2(1,15)2(2,210)2(4,410)2(3,35)2(1,10451342233124010-=+-⨯=+==+-⨯=+==+-⨯=+==+-⨯=+==+-⨯=+==a x v v a x v v a x v v a x v v a x v v v 故f(-2)=-1.4.你能否设计一个算法,计算圆周率的近似值?【解析】 画图可知2n1n a 42a --=+,1n 2n n a 23A --⋅=,1a 1=,可得算法步骤如下:BeginRead na←1For I from 2 to n A←a 232I ⋅⨯- a←sqrt ]]4a 1[sqrt 22[2-⨯- Print I,A,a End forEnd。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.
4.
二、范例解读
例1设计求6除余4,10除余8,9除余4的最小正整数的算法,画出流程图,写出伪代码.
例2《孙子算经》中的“物不知数”问题:
“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”可以用下面的算法解决:先在纸上写上2,每次加3,加成5除余3的时候停下来,再在这个数上每次加15,到得出7除余2的时候,就是答数.试用流程图表示这一算法.
三、归纳点拔
课本中介绍的处理孙子问题的算法思想主要有以下几点:
1.对正整数从2开始逐一检验.
2.用While实现循环,结整数是………………………………………………………( )
A.9 B.11 C.14 D.31
2. 是一正整数,对两个正整数 ,若 是 的倍数,则称 对模 同余,用符号 表示.则下列各式中
8.对孙子算经中的“物不知数问题”,我国古代数学家程大位在其《算法统宗》(1583)中给出了这个问题的一种算法:
三人同行七十稀,五树梅花廿一枝,七子团圆月正半,除百零五便得知.
这首诗的意义是:用70乘3除所得的余数,21乘5除所得的余数,15乘7除所得的余数,然后总加起来.如果和大于105,则减105,还大再减……,最后得到的正整数就是答数了.
第 页
☆ 蔡 老 师 高 考 与 中 考 数 学 研 究 中 心 (21216123)△
第 □ 讲
第一章 算 法 初 步
9.算法案例(韩信点兵----孙子问题)
7.事实上,如果韩信点兵的传说是真事的话,用任何方法只能得到最小解和通解(最小解加上3,5,7的公倍数),韩信是如何得到具体的、精确的解的呢?在已知最小解为23的条件下,如果韩信知道人数大约在2310到2400之间,请设计算法替韩信确定具体人数.
☆ 蔡 老 师 高 考 与 中 考 数 学 研 究 中 心 (21216123)△
第□讲
第一章 算 法 初 步
9.算法案例(韩信点兵----孙子问题)
一、双基演练
1.下列各式中不正确的是…………………………………………………………………………( )
2.下列各式中正确的是……………………………………………………………………………( )
第 页
这里的70,21,15具有这样的性质:70除以3余1,但能被5和7整除,故70 ( 为正整数)是5和7的倍数,而除3余 ,同样,可构造出21 和15 ,分别被3、7和3、5整除,而除以3和7分别余 和 .这样,70 +21
+15 就是问题的一个解了,不一定是最小解,故有时要减去105.试将上述算法用流程图表示.
① ;② ;③ ;④
正确的有………………………………………………………………………………………………( )
A.1个 B.2个 C.3个 D.4个
3. .
4. .
5.设计求被7除余2,被9除余5的最小正整数的算法,画出流程图,写出伪代码.
6.读入50个正整数 ,统计出其中奇数的个数,用伪代码表示解决这个问题的算法.
相关文档
最新文档