算法案例课件

上传人:痛*** 文档编号:198864772 上传时间:2023-04-09 格式:PPT 页数:34 大小:107KB
收藏 版权申诉 举报 下载
算法案例课件_第1页
第1页 / 共34页
算法案例课件_第2页
第2页 / 共34页
算法案例课件_第3页
第3页 / 共34页
资源描述:

《算法案例课件》由会员分享,可在线阅读,更多相关《算法案例课件(34页珍藏版)》请在装配图网上搜索。

1、1四四.算法案例算法案例多项式求值的秦九韶方法多项式求值的秦九韶方法 nnnxaxaxaaxP22101n xPnktkukkxt kk2210kxaxaxaau 2 kk1kk1kktauuxttn,2,1k(3.4.2)作为递推公式(3.4.2)的初值为:000au1t(3.4.3)3(1)逐项法多项式求值。输入:存放 的系数数组A(0:n);xPn自变量x值。其中1n 输出:值P xPn4 xt;x1A0Ap tiAPP;xtt 5 012n1nnnaxaxaxaxaxP k1kknnaxuuau0,1,1 nk 0nuxP 6 xPn xPn1n 7 nAP iAxPP 89例.中国剩

2、余定理(孙子定理)若k2,且m1,m2,mk是两两互素的k个正整数,令M=m1m2mk=m1M1=m2M2=mkMk。则同余式组:x1=b1(modm1),x2=b2(modm2),xk=bk(modmk)其正整数解是:Xb1M1M1+b2M2M2+bkMkMk(modM)其中Mi是满足同余式:MiMi1(mod mi)(i=1,2k)用孙子定理解同余式组:xi=bi(modmi)(i=1,2k)的算法步骤如下:102.对半法查找对半法查找(二分法二分法)算法算法对这种算法的实质是在一个有限且有序的对象中,通过每次缩减一半查找范围而达到迅速确定目的一个有效算法。因此有着很广泛的应用。例如,在数

3、学中有很多方程是写不出根的解析表达式的,但是根的存在范围比较容易确定,那么如何才能找到它的根的一个足够准确的近似值呢?这时对半查找算法就可以大显身手了。11由初等函数f(x)=0构成的方程,如果有f(a)f(b)0,则可以肯定方程f(x)=0在(a,b)至少有一个实数根。选择(a,b)的中点c,若f(c)=0,则根就是x=c。若f(c)0,则用c值取代相应的a或b(取代原则是:保证有f(a)f(b)a b c 10,abc=30723,且,且a b+c,试确定,试确定a、b、c的值。的值。分析问题分析问题解决这个问题应当从解决这个问题应当从abc=30723入手。把入手。把30723三个整三个

4、整数相乘的积,只能有有限种情况,我们可以把这些情况一一数相乘的积,只能有有限种情况,我们可以把这些情况一一罗列出来,然后分析哪一种情况是符合条件的。从而找到答罗列出来,然后分析哪一种情况是符合条件的。从而找到答案。案。(在列举所有情况时,注意三个因子都大于在列举所有情况时,注意三个因子都大于10,这可以减,这可以减少列举的工作量少列举的工作量)。25把把30723分解为分解为3个大于个大于10的因子的乘积只有的因子的乘积只有5种情况种情况1119147(三个因子的和是三个因子的和是177)1121133(三个因子的和是三个因子的和是165)194957(三个因子的和是三个因子的和是101)11

5、4957(三个因子的和是三个因子的和是117)192177(三个因子的和是三个因子的和是117)在这在这5种情况中考察,符合种情况中考察,符合ab+c而且最大的数小于而且最大的数小于100的,的,只有最后一种情况,即只有最后一种情况,即a=77,b=21,c=19。26计算算法计算算法设计穷举算法的关键是如何列举所有可能的情况,绝对不能设计穷举算法的关键是如何列举所有可能的情况,绝对不能遗漏,最好不要重复。在列举时注意变量的范围,可以减少遗漏,最好不要重复。在列举时注意变量的范围,可以减少工作量。工作量。我们可以从最小的变量我们可以从最小的变量c入手,让它从入手,让它从10开始变化。但变化开始

6、变化。但变化的范围到哪里为止呢?粗略估算一下,三个数相乘是的范围到哪里为止呢?粗略估算一下,三个数相乘是30723,最小的最小的c不超过它的立方根。我们可以用平方根做近似替代,不超过它的立方根。我们可以用平方根做近似替代,不必作太多推算。不必作太多推算。当当c值产生之后,就可以处理变量值产生之后,就可以处理变量b。因为它不小于。因为它不小于c,让它,让它从从c开始,也让它变化到开始,也让它变化到30723的平方根。的平方根。有了有了c和和b的值之后,就要判断他们是否都是的值之后,就要判断他们是否都是30723的因子。的因子。如果是,计算出第三个因子如果是,计算出第三个因子a,然后进行判断:,然

7、后进行判断:a是否大于是否大于b+c并且并且a100。满足条件就是解答了。满足条件就是解答了。27例题例题(钱币问题钱币问题)在日程生活中常常需要用一些较小面额的钱币去组合出一定的币值。现有面值为1元、2元和5元的钞票(假设每种钞票的数量都足够多),从这些钞票中取出30张使其总面值为100元,问有多少种取法?每种取法的各种面值的钞票各为多少张?28分析问题分析问题显然列出一条算式来解决钱币问题是有困难的。既然解析法很难用上,我们尝试通过列举所有可能的情况(穷举),从中判断出合符条件的解答。29当钞票数量比较多,总币值比较大时,人工列举所有钞票组合(穷举)就很麻烦,这时需要使用计算机来帮我们穷举

8、。但使用计算机来穷举,必须清楚地说出穷举的每一个步骤,并通过程序设计语言转化为计算机能后执行的过程,才能解决问题。钱币问题有3种面额的钞票,钞票的总张数是30张,又应当如何穷举呢?经分析可以知道:当有两种面额的钞票数目确定了之后,可以从总张数为30确定第三种钞票的张数,然后由总面额是否100元而判断这个组合是否合乎要求。此外,先确定面额大的钞票可以使穷举的次数少些。30设计算法设计算法 用ONE、TWO、FIVE分别记录1元、2元、5元钞票的张数。变量ANSWER记录符合条件的解的数目。穷举的过程如下:让ANSWER=0,FIVE=0;TWO=0让ONE=30 TWO FIVE;检查5FIVE

9、2TWOONE 是否等于100,若是,则得到一组解,这时让ANSWER增加1。并且输出解答如果TWO30,那么让TWO增加1,转步骤;如果FIVE20,那么让FIVE增加1,转步骤结束可把这些步骤用框图表示如图4-7:Click to display31汉诺汉诺(Hanoi)塔问题是一个著名的应用递归算法解决的问题。塔问题是一个著名的应用递归算法解决的问题。问题问题4-17:传说在古代印度的贝拿勒斯神庙里安放了一块黄铜板,传说在古代印度的贝拿勒斯神庙里安放了一块黄铜板,板上插了三根宝石柱,在其中一根宝石柱自上而下由小到大板上插了三根宝石柱,在其中一根宝石柱自上而下由小到大地叠放着地叠放着64个

10、大小不等的金盘。一名僧人把这些金盘从一根个大小不等的金盘。一名僧人把这些金盘从一根宝石柱移到另外一根上。僧人在移动金盘时遵守下面宝石柱移到另外一根上。僧人在移动金盘时遵守下面3条规条规则:则:一次只能移动一个金盘。一次只能移动一个金盘。每个金盘只能由一根宝石柱移到另外一根宝石柱。每个金盘只能由一根宝石柱移到另外一根宝石柱。任何时候都不能把大的金盘放在小的金盘上。任何时候都不能把大的金盘放在小的金盘上。32神化说,如果僧人把64个金盘完全地从一根宝石柱移到了另外一根上,世界的末日就要到了。当然,神化只能当故事听,世界不可以因为个别人的活动而导致末日。不过,如果能够计算出僧人按规则搬完64个金盘,

11、地球能否继续存在也的确是个问题!因为即使僧人的动作十分敏捷,每秒都能移动一个金盘,那也得要几亿年!33分析问题分析问题 要模拟金盘的移动过程是比较困难的,但如果用递归的思想来进行(压缩规模,把问题解决在最简单的情况),则问题可以解决。我们把3根宝石柱分别命名为A、B、C。最初有N个金盘放在A,需要把它们全部按规则移动到B。当N=1时,直接把金盘从A搬到B就可以了,1次成功。当N2,那么需要利用C柱来过渡。按照递归的思想,我们假设已经找到一种把N1个金盘从一根柱搬到另外一根柱的方法,然后看看如何通过它来实现搬动N个金盘。我们只要把N1个金盘从A搬到C,然后把最大的金盘从A搬到B,最后把C上的N1个金盘搬到B就可以了。靠递归的思想,我们轻而易举地完成了整个搬动。34设计算法设计算法我们定义一个过程Hanoi(N,A,B,C),表示有N个金盘需要从A柱搬到B柱(以C柱为过渡)。那么完成它只需3步:Hanoi(N1,A,C,B)它的意思是把A柱上的N1个金盘搬到C柱,AB它的意思是把一个(最大的)金盘从A柱搬到B柱,Hanoi(N,C,B,A)它的意思是把C柱上的N1个金盘搬到B柱。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!