9.算法案例(韩信点兵----孙子问题)
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格式,下载后可方便编辑和修改! ==中国剩余定理的应用实例——韩信点兵物不知其数问题出自一千六百年前我国古代数学名著《孙子算经》。
原题为:"今有物不知其数,三三数之二,五五数之三,七七数之二,问物几何?"这道题的意思是:有一批物品,不知道有几件。
如果三件三件地数,就会剩下两件;如果五件五件地数,就会剩下三件;如果七件七件地数,也会剩下两件。
问:这批物品共有多少件?变成一个纯粹的数学问题就是:有一个数,用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)

分析理解
解 算法步骤如下: 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 枚银元依次放在右边进行称量,直到天平不平衡, 偏轻的那一枚就是假银元.
韩信点兵 剩余定理

用等式两边加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算法案例 含解析 精品

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。
韩信点兵剩余定理

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;… 再继续做下去
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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个正整数 ,统计出其中奇数的个数,用伪代码表示解决这个问题的算法.