ImageVerifierCode 换一换
格式:PPTX , 页数:40 ,大小:182.14KB ,
资源ID:4185342      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4185342.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(算法设计.pptx)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

算法设计.pptx

1、3 3.3 .3 优化算法的基本技巧优化算法的基本技巧【例题例题2525】编写算法对输入的一个整数,判断它能否被编写算法对输入的一个整数,判断它能否被3 3,5 5,7 7整除,并输出以下信息之一:整除,并输出以下信息之一:(1 1)能同时被能同时被3 3,5 5,7 7整除;整除;(2 2)能被其中两数(要指出哪两个)整除;能被其中两数(要指出哪两个)整除;(3 3)能被其中一个数(要指出哪一个)整除;能被其中一个数(要指出哪一个)整除;(4 4)不能被不能被3 3,5 5,7 7任一个整除。任一个整除。3 3.3 .3 优化算法的基本技巧优化算法的基本技巧【算法分析算法分析】(1 1)使用

2、使用ifif语句实现,但需要进行多次条件判断,而且嵌套语句实现,但需要进行多次条件判断,而且嵌套的的ifif语句降低了程序的可读性。语句降低了程序的可读性。(2 2)使用表达式)使用表达式 k=(x%3=0)+(x%5=0)+(x%7=0)k=(x%3=0)+(x%5=0)+(x%7=0)k k为为0 0:不能被:不能被3 3,5 5,7 7整除整除 k k为为1 1:能被:能被3 3、5 5、7 7中的一个整除,但不能指出是哪一个中的一个整除,但不能指出是哪一个 k k为为2 2:能被:能被3 3、5 5、7 7中的两个整除中的两个整除 k k为为3 3:能同时被:能同时被3 3、5 5、

3、7 7整除整除3 3.3 .3 优化算法的基本技巧优化算法的基本技巧(3 3)K%3=0K%5=0K%7=0全部1117其中2个110610150113其中1个1004010200110个00003 3.3 .3 优化算法的基本技巧优化算法的基本技巧 构造表达式构造表达式 k=(k%3=0)k=(k%3=0)*4*4+(k%5=0)+(k%5=0)*2*2+(k%7=0+(k%7=0)*1 1 switch(k)switch(k)case 7:print(case 7:print(“allall”);break;);break;case 6:print(case 6:print(“3,53,5

4、);break;);break;case 5:print(case 5:print(“3,73,7”);break;);break;case 4:print case 4:print(”3 3”););break;break;case 3:print(case 3:print(“5,75,7”);break;);break;case 2:print(case 2:print(“5 5”);break;);break;case 1:print(case 1:print(“7 7”);break;);break;case 0:print(case 0:print(“NoneNone”);brea

5、k;);break;3 3.4 .4 优化算法的数学模型优化算法的数学模型l选择恰当的数学模型,可以使算法的效率更高、占用空间更选择恰当的数学模型,可以使算法的效率更高、占用空间更合理或使算法更简洁。合理或使算法更简洁。l认识数学模型和数学建模认识数学模型和数学建模w一个关于数学模型的简单实例:已知有一个关于数学模型的简单实例:已知有5 5个数,求前四个个数,求前四个数与第五个数分别相乘后的最大数。数与第五个数分别相乘后的最大数。p106p106w算法算法1 1:w算法算法2 2:3 3.4 .4 优化算法的数学模型优化算法的数学模型操作操作算法算法 乘法乘法赋值赋值条件判断条件判断 Max1

6、 4 7 3 Max2 1 4 33 3.4 .4 优化算法的数学模型优化算法的数学模型w数学模型:是利用数学语言(符号、式子与图像)模拟现数学模型:是利用数学语言(符号、式子与图像)模拟现实的模型。实的模型。w基本特征:把现实模型抽象、简化为某种数据结构。基本特征:把现实模型抽象、简化为某种数据结构。w作用:作用:w解释特定现象的现实状态解释特定现象的现实状态w预测到对象的未来状况预测到对象的未来状况w提供处理对象的最优决策或控制提供处理对象的最优决策或控制3 3.4 .4 优化算法的数学模型优化算法的数学模型w数学建模:数学建模就是把现实世界中的实际问题加以提数学建模:数学建模就是把现实世

7、界中的实际问题加以提炼,抽象为数学模型,求出模型的解,验证模型的合理性,炼,抽象为数学模型,求出模型的解,验证模型的合理性,并用该数学模型所提供的解答来解释现实问题,我们把数并用该数学模型所提供的解答来解释现实问题,我们把数学知识的这一应用过程称为数学建模。学知识的这一应用过程称为数学建模。w归纳法:归纳法:w是通用而简单的数学建模方法是通用而简单的数学建模方法。w从分析问题的几种简单的、特殊的情况中,发现一般从分析问题的几种简单的、特殊的情况中,发现一般规律或作出某种猜想,从而找到解决问题的途径。规律或作出某种猜想,从而找到解决问题的途径。w归纳法是从简单到复杂,由个别到一般的一种研究方归纳

8、法是从简单到复杂,由个别到一般的一种研究方法。法。3 3.4.1 .4.1 杨辉三角形的应用杨辉三角形的应用【例题例题】求求n n次二项式各项的系数。次二项式各项的系数。已知二项式的展开式为:已知二项式的展开式为:分析:若只用的组合数学的知识,直接建模分析:若只用的组合数学的知识,直接建模问题:算法中也要有大量的乘法和除法运算,效率很低。问题:算法中也要有大量的乘法和除法运算,效率很低。3 3.4.1 .4.1 杨辉三角形的应用杨辉三角形的应用数学常识:各阶多项式的系数呈杨辉三角形的规律:数学常识:各阶多项式的系数呈杨辉三角形的规律:(a+b)(a+b)0 0 1 1 (a+b)(a+b)1

9、1 1 1 1 1(a+b)(a+b)2 2 1 2 1 2 1 1(a+b)(a+b)3 3 1 1 3 3 13 3 1(a+b)(a+b)4 4 1 4 6 4 1 1 4 6 4 1(a+b)(a+b)5 5 数学模型:数学模型:n n次二项式的系数就是次二项式的系数就是n n阶杨辉三角形。阶杨辉三角形。3 3.4.1 .4.1 杨辉三角形的应用杨辉三角形的应用求求n n阶杨辉三角形的递归算法:阶杨辉三角形的递归算法:ff(int a,int n)if (n=1)a1=1;a2=1;else ff(a,n-1);/*递归求出n-1阶*/an+1=1;for(i=n;i=2;i-)ai=

10、ai+ai-1;main()int a100,i,n;input(n);ff(a,n);for(i=1;i=n+1;i=i+1)print(ai);3 3.4.2 .4.2 最大公约数的应用最大公约数的应用【例题例题】数组中有数组中有n n个数据,要将它们顺序循环向后移个数据,要将它们顺序循环向后移k k位,即位,即前面的元素向后移前面的元素向后移k k位,后面的元素则循环向前移位,后面的元素则循环向前移k k位。位。例:例:1 1、2 2、3 3、4 4、5 5循环移循环移3 3位后为:位后为:3 3、4 4、5 5、1 1、2 2。【实现实现1 1】利用一个数组存放原始数据,利用另外一个数

11、组存利用一个数组存放原始数据,利用另外一个数组存放结果。放结果。3 3.4.2 .4.2 最大公约数的应用最大公约数的应用l若题目限定:不能使用若题目限定:不能使用2*n2*n以上的空间来实现此题。以上的空间来实现此题。【实现实现2 2】利用利用k k次循环,每次移动一位。次循环,每次移动一位。(1 1)先把)先把anan保存到临时单元保存到临时单元temptemp (2 2)将将an-1an-1an,an-2 an-1(3)将)将tempa0中3 3.4.2 .4.2 最大公约数的应用最大公约数的应用【实现实现3 3】利用一个临时变量,将每一个数据一次移动到位利用一个临时变量,将每一个数据一

12、次移动到位(1 1)一组循环移动的情况:)一组循环移动的情况:通过计算我们可以确定某个元素移动后的具体位置,通过计算我们可以确定某个元素移动后的具体位置,如如n=5,k=3n=5,k=3时:时:0 0、1 1、2 2、3 3、4 4循环移循环移3 3位后为位后为2 2、3 3、4 4、0 0、1 1。可通过计算得出可通过计算得出0 03 3,3 31 1,1 1 4 4,4 42 2,2 20 0;一组移动(一组移动(0-3-1-4-2-00-3-1-4-2-0)正好将全部数据按要求进行了)正好将全部数据按要求进行了移动。这样只需要一个辅助变量,每个数据只需一次移动就可移动。这样只需要一个辅助

13、变量,每个数据只需一次移动就可完成整个移动过程。完成整个移动过程。3 3.4.2 .4.2 最大公约数的应用最大公约数的应用(2 2)多组循环移动的情况:)多组循环移动的情况:当当n=6n=6,k=3k=3时时,1 1、2 2、3 3、4 4、5 5、6 6经移动的结果是经移动的结果是4 4、5 5、6 6、1 1、2 2、3.3.并不象上一个例子并不象上一个例子,一组循环移动(一组循环移动(1-4-11-4-1)没有将全部数)没有将全部数据移动到位。还需要(据移动到位。还需要(2-5-22-5-2)()(3-6-33-6-3)两组移动才能将全部)两组移动才能将全部数据操作完毕。数据操作完毕。

14、循环移动的组数,与循环移动的组数,与k k、n n的是怎么样的关系呢?的是怎么样的关系呢?3 3.4.2 .4.2 最大公约数的应用最大公约数的应用我们再看一个例子:我们再看一个例子:当当N=6N=6,K=2K=2时时,1 1、2 2、3 3、4 4、5 5、6 6经移动的结果是经移动的结果是5 5、6 6、1 1、2 2、3 3、4.4.一组移动一组移动(1-3-5-11-3-5-1),完成了),完成了3 3个数据的移动;接下来,还有个数据的移动;接下来,还有一组一组2-4-6-22-4-6-2。共进行二组循环移动,就能将全部数据移动完。共进行二组循环移动,就能将全部数据移动完毕。毕。p数学

15、模型:循环移动的组数等于数学模型:循环移动的组数等于N N与与K K的最大公约数。的最大公约数。3 3.4.2 .4.2 最大公约数的应用最大公约数的应用算法设计:算法设计:1 1)编写函数,完成求)编写函数,完成求n,kn,k最大公约数最大公约数m m的功能的功能2 2)进行)进行m m组循环移动。组循环移动。3 3)每组共)每组共n/mn/m个数据:个数据:第一组:第一组:a1 a(1+k)%n a(1+2k)%na1 a(1+k)%n a(1+2k)%n第二组:第二组:a2 a(2+k)%n a(2+2k)%na2 a(2+k)%n a(2+2k)%n第第m m组:组:am a(m+k)

16、n a(m+2k)%nam a(m+k)%n a(m+2k)%n3 3.4.2 .4.2 最大公约数的应用最大公约数的应用/*求求a,b的最大公约数的最大公约数*/intff(inta,intb)t=1;for(i=2;i=a&i=b;i+)while(a%i=0andb%i=0)t=t*i;a=a/i;b=b/i;return(t);main()int a100,b0,b1,i,j,n,k,m,tt;input(n,k);for(i=0;in;i=i+1)input(ai);m=ff(n,k);for(j=0;jm;j=j+1)/*共移动m组*/b0=aj;/*将每组的第一个数保存到b0中

17、/tt=j;3 3.4.2 .4.2 最大公约数的应用最大公约数的应用for(i=0;in/m;i=i+1)/*每组中共有n/m个数据*/tt=(tt+k)%n;/*计算移动的目标位置*/b1=att;/*先保存目标位置中的数据*/att=b0;/*将前面的数据b0移入目标位置*/b0=b1;/*将b1作为新的b0*/for(i=0;in;i=i+1)print(ai);3 3.4.2 .4.2 最大公约数的应用最大公约数的应用分析该算法中移动数据时的赋值次数f=n/m;for(j=0;j0;i-)a(j+i*k)%n=a(j+(i-1)*k)%n;/*从后向前移动*/aj=b;/*把该组的

18、最后一个数送到aj处*/3 3.4.2 .4.2 最大公约数的应用最大公约数的应用【例】编程完成下面给“余”猜数的游戏:你心里先想好一个1100之间的整数x,将它分别除以3、5和7并得到三个余数。你把这三个余数告诉计算机,计算机能马上猜出你心中的这个数。游戏过程如下:Please think of a number between 1 and 100Your number divided by 3 has a remainder of?1your number divided by 5 has a remainder of?0your number divided by 7 has a rem

19、ainder of?5your number is 403 3.4.3 .4.3 公倍数的应用公倍数的应用【问题分析】算法设计的关键:找出余数与求解数之间的关系,建立问题的数学模型。【数学模型】1)不难理解当s=u+3*v+3*w时,s除以3的余数与u除以3的余数是一样的。2)对s=cu+3*v+3*w,当c是除以3余1的数时,s除以3的余数与u除以3的余数也是一样的。3 3.4.3 .4.3 公倍数的应用公倍数的应用【模型建立】设a,b,c分别是该数除以3,5,7后的余数,则该数为:x=c1*a+c2*b+c3*c3 3.4.3 .4.3 公倍数的应用公倍数的应用分析:(1)x除以3余a:则

20、c1应除以3余1,c2,c3为3的倍数(2)x除以5余b:则c2应除以5余1,c1,c3为5的倍数(3)x除以7余c:则c3应除以7余1,c1,c2为7的倍数计算后,满足条件的c1=70 c2=21 c3=15 x=70*a+21*b+15*c若求解的d比100大,需要循环减去3,5,7的最小公倍数。main()int a,b,c,d;input(a);/*除3后的余数*/input(b);/*除5后的余数*/input(c);/*除7后的余数*/d=70*a+21*b+15*c;while (d100)d=d-105;/*105为3,5,7的最小公倍数*/print(“your number

21、 is”,d);3 3.4.3 .4.3 公倍数的应用公倍数的应用思考:3个除数也由用户给出,请设计算法。【例例】楼梯上有楼梯上有n n阶台阶,上楼可以一步上阶台阶,上楼可以一步上1 1阶,也可以一步阶,也可以一步上上2 2阶,编写算法计算共有多少种不同的上楼梯方法。阶,编写算法计算共有多少种不同的上楼梯方法。【数学模型数学模型】此问题如果按照习惯,从前向后思考,也就是此问题如果按照习惯,从前向后思考,也就是从第一阶开始,考虑怎么样走到第二阶、第三阶、第四阶从第一阶开始,考虑怎么样走到第二阶、第三阶、第四阶,则很难找出问题的规律;而反过来先思考,则很难找出问题的规律;而反过来先思考“到第到第n

22、 n阶有阶有哪几种情况?哪几种情况?”,答案就简单了,只有两种情况:,答案就简单了,只有两种情况:1 1)从第从第n-1n-1阶到第阶到第n n阶;阶;2 2)从第从第n-2n-2阶到第阶到第n n阶。阶。3 3.4.4 .4.4 斐波那契数列的应用斐波那契数列的应用反向分析法反向分析法记记n n阶台阶的走法数为阶台阶的走法数为f(n)f(n),则,则 f(n)=1 n=1f(n)=1 n=1 f(n)=2 f(n)=2 n=2 n=2 f(n)=f(n-1)+f(n-2)n2 f(n)=f(n-1)+f(n-2)n23 3.4.4 .4.4 斐波那契数列的应用斐波那契数列的应用(2 2)倒推

23、法:是对某些特殊问题所采用的从后向前推解问题)倒推法:是对某些特殊问题所采用的从后向前推解问题的方法。的方法。【例例3 3】猴子吃桃问题:一只小猴子摘了若干桃子,每天吃现猴子吃桃问题:一只小猴子摘了若干桃子,每天吃现有桃的一半多一个,到第有桃的一半多一个,到第1010天时就只有一个桃子了,求原有多天时就只有一个桃子了,求原有多少个桃?少个桃?数学模型:数学模型:每天的桃子数为:每天的桃子数为:a a1010=1,a=1,a9 9=(1+a=(1+a1010)*2,a)*2,a8 8=(1+a=(1+a9 9)*2)*2 递推公式为:递推公式为:a ai i=(1+a=(1+ai+1i+1)*2

24、 i=9,8,7,6)*2 i=9,8,7,61 1【例例2 2】穿越沙漠问题穿越沙漠问题用一辆吉普车穿越用一辆吉普车穿越10001000公里的沙漠。吉普车的总装油量为公里的沙漠。吉普车的总装油量为500500加仑,耗油率为加仑,耗油率为1 1加仑加仑/公里。由于沙漠中没有油库,必须先用公里。由于沙漠中没有油库,必须先用这辆车在沙漠中建立临时油库。该吉普车以最少的耗油量穿越这辆车在沙漠中建立临时油库。该吉普车以最少的耗油量穿越沙漠,应在什么地方建油库,以及各处的贮油量。沙漠,应在什么地方建油库,以及各处的贮油量。【分析分析】先看一简单问题:先看一简单问题:有一位探险家用有一位探险家用5 5天的

25、时间徒步横穿天的时间徒步横穿A A、B B两村,两村间是两村,两村间是荒无人烟的沙漠,如果一个人只能携带荒无人烟的沙漠,如果一个人只能携带3 3天的食物和水,那么天的食物和水,那么这个探险家至少雇几个人才能顺利通过沙漠。这个探险家至少雇几个人才能顺利通过沙漠。【例例】核反应堆中有核反应堆中有和和两种粒子,每秒钟内一个两种粒子,每秒钟内一个粒子粒子可以反应产生可以反应产生3 3个个粒子,而一个粒子,而一个粒子可以反应产生粒子可以反应产生1 1个个粒子和粒子和2 2个个粒子。若在粒子。若在t=0t=0时刻的反应堆中只有一个时刻的反应堆中只有一个粒子,粒子,求在求在t t时刻的反应堆中时刻的反应堆中

26、粒子和粒子和粒子数。粒子数。【分析分析】3 3.4.5 .4.5 特征根求解递归方程特征根求解递归方程时刻010103236363*3+2*6i i-13*ai-1+2*bi-1【数学模型数学模型1 1】本题中共涉及两个变量,本题中共涉及两个变量,i i时刻时刻粒子数为粒子数为n ni i,粒子数为粒子数为m mi i,则有:,则有:n n0 0=1,m=1,m0 0=0,n=0,ni i=m=mi-1i-1,m mi i=3n=3ni-1i-1+2m+2mi-1i-13 3.4.5 .4.5 特征根求解递归方程特征根求解递归方程mainmain()()int n100,m100,t,i;in

27、t n100,m100,t,i;input(t);input(t);n0=1;/n0=1;/初始化操作初始化操作 m0=0;m0=0;for(i=1;i=t;i+)/for(i=1;i=t;i+)/进行进行t t次递推次递推 ni=mi-1;ni=mi-1;mi=3*ni-1+2*mi-1;mi=3*ni-1+2*mi-1;print(ntprint(nt,mt);/);/输出结果输出结果【数学模型数学模型2 2】设在设在t t时刻的时刻的粒子数为粒子数为f f(t t),),粒子数为粒子数为g(t)g(t),依题可知:,依题可知:g(t)=3f(t-1)+2g(t-1)g(t)=3f(t-1

28、)+2g(t-1)(1 1)f(t)=g(t-1)f(t)=g(t-1)(2 2)g(0)=0,g(0)=0,f(0)=1 f(0)=1 整理得:整理得:g(t)=3g(t-2)+2g(t-1)g(t)=3g(t-2)+2g(t-1)(t2t2)(4 4)g(0)=0g(0)=0 g(1)=3 g(1)=33 3.4.5 .4.5 特征根求解递归方程特征根求解递归方程用特征根求得:用特征根求得:g(t)=g(t)=3 3.4.5 .4.5 特征根求解递归方程特征根求解递归方程mainmain()()int t,i;int t,i;input(t);input(t);n=pow(3,t);/*n

29、 n=pow(3,t);/*n代表代表a a粒子数量粒子数量*/m=pow(3,t+1);/*m m=pow(3,t+1);/*m代表代表B B粒子数量粒子数量*/if(t%2=1)if(t%2=1)n=n-3;m=m+3;n=n-3;m=m+3;else else n=n+3;m=m-3;n=n+3;m=m-3;n=int(n/4);n=int(n/4);m=int(m/4);m=int(m/4);print(n,m);print(n,m);3 3.4.5 .4.5 特征根求解递归方程特征根求解递归方程算法分析:在数学模型算法分析:在数学模型2 2中,中,运用数学的方法建立了递归函运用数学的

30、方法建立了递归函数并转化为非递归函数。它的数并转化为非递归函数。它的优点是算法的复杂性与问题的优点是算法的复杂性与问题的规模无关。针对某一具体数据,规模无关。针对某一具体数据,问题的规模对时间的影响微乎问题的规模对时间的影响微乎其微。其微。【例例1 1】百钱买百鸡百钱买百鸡【例例2 2】解数字迷:解数字迷:ABCABADDDDDD算法设计算法设计1:按乘法枚举:按乘法枚举枚举范围为:枚举范围为:A:39(A=1,2时积不会得到六位数)时积不会得到六位数)B:09C:09六位数表示为六位数表示为A*10000+B*1000+C*100+A*10+B,共尝试共尝试700次。次。4.2.1 4.2.

31、1 穷举法穷举法【例例2 2】解数字迷:解数字迷:ABCABADDDDDD算法设计算法设计2:按除法枚举:按除法枚举将算式变形为除法:将算式变形为除法:DDDDDD/A=ABCAB。此时。此时A:39D:19共尝试共尝试7*9=63次。次。4.2.1 4.2.1 穷举法穷举法l本节将通过蛮力策略,用算法模拟问题中所描述的全部过程和全部状态,来找出问题的解,并与经过数学建模后的算法进行效率上的比较。4.2.2 4.2.2 其他范例其他范例【例12】某国王对囚犯进行大赦,让一狱吏n次通过一排锁着的n间牢房,每通过一次,按所定规则转动n间牢房中的某些门锁,每转动一次,原来锁着的被打开,原来打开的被锁

32、上;通过n次后,门锁开着的,牢房中的犯人放出,否则犯人不得获释。转动门锁的规则是这样的,第一次通过牢房,要转动每一把门锁,即把全部锁打开;第二次通过牢房时,从第二间开始转动,每隔一间转动一次;第k次通过牢房,从第k间开始转动,每隔k-1 间转动一次;问通过n次后,那些牢房的锁仍然是打开的?4.2.2 4.2.2 其他范例其他范例方法一:穷举法for(i=1;i=n;i+)for(j=i;j=n;j=j+i)ai=1-ai;方法二:因数统计法for(i=1;i=n;i+)s=1;for(j=2;j=i;j=j+)if(i%j=0)s=s+1;if(s%2=1)print(i,”is free.”);4.2.2 4.2.2 其他范例其他范例方法三:完全平方数的因数个数为奇数。for(i=1;i+)if(i*i=n)print(i,”is free.”);else break;4.2.2 4.2.2 其他范例其他范例

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服