(补充)程序设计基本方法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(补充)程序设计基本方法

用程序解决问题的基本方法(一) 逼近法 迭代与递推 穷举法 例如:求曲线 在a-b之间的面积 逼近法 这种方法,将问题分成若干的类似的计算单元根据这些计算单元的值来逐渐逼近最终的结果。 程序实现的步骤: 找到可以逐渐逼近的每一个单元的表达方式 梯形公式 矩形公式 使用循环语句来构造整个计算框架 逐步逼近 在题目可以接受的条件下结束循环。 求Π值 利用“正多边形逼近”的方法来计算 祖冲之的算法 过程:利用圆内接正六边形边长等于半径的特点,将边数翻翻,作出12边形,求出边长。重复这个过程,就可以获得所需精度的近似值。 当边长为2b的时候,边数为i,边数加倍后新的正多边形的边长为: 练习 写出 计算sinx 在(-Π/2,Π/2)所围成面积的主要代码片段。 例题 迭代相关(特点是变量的值在变化) Π/4 ≈ 1-1/3+1/5-1/7+1/9- … 递推相关(变量新值由旧值或其它值推出) 计算 N! 迭代与递推 迭代就是用不断变化的新值替代其旧值。例如,一笔存款每年自动转存,就形成利滚利的情况,本金每年不同,不断迭代。 递推是由一个变量的值推出另外的变量的值。例如若每代人之间的年龄相差25岁。则由一个人的年龄推出起父亲年龄、爷爷年龄的过程,就称为递推。 实际上,迭代与递推没有严格的区别。例如在上述存款问题中,将各年的本金用不同的变量表示,就成了递推问题。 程序的实现步骤 第一步:找到一个可以方便地进行迭代或者递推的表达式 第二步:根据这个表达式,找到合适的循环变量,并确定其初值和终止条件 第三步:构造循环程序框架,实现迭代或者递推的表达式。 例子:猴子吃桃子 一天一只小猴子摘下一堆桃子,当即吃去一半,还觉得不过瘾,又多吃了一个。第二天接着吃了前一天剩下的一半,馋不忍罢又多吃了一个。以后每天如此。到第十天小猴子去吃时,只剩下一个桃子了。问小猴子共摘了多少桃子。 分析 设小猴子当初共摘了x个桃子。则根据题意,有: 第1天: 吃掉x/2 + 1个, 剩下x/2 – 1 = (x – 2)/2个; 第2天: 吃掉((x – 2)/2)/2 + 1个, 剩下(x – 2)/2 – (((x – 2)/2 + 1) = (x – 2)/2 -(x – 2 + 22)/22 =(x – 2 – 22)/22 个; 第i天: 剩下:(x – 2 – 22 - … - 2i)/2i个; 第9天: 剩下:(x – 2 – 22 - … - 29)/29 = 1 (第10天小猴子看到的那1个桃子)。 这种求解方法有如下缺点 1)人的干预太多,不适合计算机直接求解; 2)需要进行的计算比较复杂。假设,是到了第100天 才看到剩下的1个桃子,则要进行 299 + 299 + 298 + … + 22 + 2的计算。 建立递推等式 用递推法,即从第10天看到的那个桃子开始往前推: 第9天的桃子数为 peach9 = (peach10 +1)*2; 第8天的桃子数为 peach8 = (peach9 +1)*2; …… 第i天的桃子数为 peachi = (peachi+1 +1)*2; …… 于是,就建立起了递推式或迭带式。从初始值开始,迭代9次,就得到第1天的桃子数。 穷举法 有许多问题的解“隐藏”在多个可能之中。穷举就是对多种可能情形一一测试,从多种可能中找出符合条件的(一个或一组)解。当然,也可能得出无解的结论。 程序实现的步骤: 先为所有的情形,设计组合变量 找到“条件“的表达方式 使用多重循环来实现穷举 例题一、百钱买百鸡 公元五世纪末,我国古代数学家张丘建 在《算经》中提出了如下问题:鸡翁一值 钱五,鸡母一值钱三,鸡雏三值钱一。凡 百钱买百鸡,问鸡翁、母、雏各几何? 分析 从0开始(例如:没有公鸡,没有母鸡,没有小鸡),列举三种鸡的全部组合。 将每一种组合的价格同最终条件进行比较,并确定满足要求的鸡的组合方式。 程序实现的步骤 1.为每一种鸡的数量定义一个变量 如: cocks、hens、chicks 2.找到最终的判断等式 等式一:5 * cocks + 3 * hens + chicks / 3.0 = 100 等式二: cocks + hens + chicks = 100 3.用多重循环(嵌套)来实现全部的组合 循环部分的实现 程序的优化(一) cocks、hens、chicks的取值范围分别应为: cocks:0~20 (假如100元全买cocks,最多20只) hens:0~33(假如100元全买hens,最多33只) chicks:0~100(假如全买chicks,最多100只) 因此可以将循环的范围缩小,加快计

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档