1.2算法和算法的描述1.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文档。上传文档
查看更多
1.2算法和算法的描述 导入 欧几里得是古代最有名望的学者之一,古希腊数学及,几何学的鼻祖。 公元前300年左右,他所著《几何原本》十三卷,是世界上最早公理化的数学著作。 在《几何原本》中,他充分总结了前人的生产经验和研究成果,创立了著名的欧几里得几何(简称欧式几何) 导入 辗转相除法——欧几里得算法 设给定的两个正整数为m和n,求它们的最大公约数的步骤如下: ①以m除以n,令所得的余数为r。 ②若r=0,则输出结果n,算法结束;否则,继续步骤③. ③令m=n,n=r,并返回步骤①继续进行。 一、算法 1、算法的概念 算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。 一、算法 设m=112,n=64,利用辗转相除法,求最大公约数。 1、112除以64,余数为 一、算法 2、算法的特征 输入 确定性 有穷性 输出 能行性 一、算法 二、算法的描述 算法描述语言有: 1、自然语言 2、流程图 3、伪代码 1、用自然语言描述算法 例题:鸡兔同笼问题 一个笼子里有鸡和兔,现在只知道里面一共有35个头,94个脚,鸡和兔各有多少只?试设计一个求解的算法,并用自然语言描述出来。 1、用自然语言描述算法 1)分析问题 设所求的鸡数是x,兔数是y,已知笼子里的头数是a,脚数是b,依题意得到如下的方程组: 1、用自然语言描述算法 2)设计算法 ①输入a和b的值; ②求x=2a-b/2; ③求y=b/2-a; ④输出x和y的值; ⑤结束。 2、用流程图描述算法 在程序框图中流程图是描述算法的常用工具。 “流程图” 的基本符号 鸡兔同笼流程图 3、用伪代码描述算法 辗转相除法 input m.n r=m mod n Do while r≠0 m=n n=r r=m mod n Loop print n 3、用伪代码描述算法 Input a,b 复习与巩固 设计一个算法,求出100以内能被3整除的所有正整数,请用三种算法语言进行描述。 复习与巩固 自然语言 ①令I=1; ②如果I能被3整除,则输出I; ③I=I+1; ④如果I≦100,则返回第②步; ⑤结束 复习与巩固 流程图 复习与巩固 伪代码1 I=1 For I=1 to 100 If I mod 3=0 then print I Next I 复习与巩固 伪代码2 I=1 Do until I100 if I mod 3=0 then print I end if I=I+1 Loop 复习与巩固 * * 问题1: 有一个牧羊人带着一头羊,一只狼和一颗大白菜准备过河,他找到一只很小的船,每次只能带一样东西过去,可是如果让狼与羊单独在一起,狼会吃羊,让羊与白菜单独在一起,羊会吃白菜,牧羊人应如何过河? 要求: 分组讨论,前后四个同学为一组,把你们的橡皮擦放到一块,分别写上狼、羊、白菜,你们自己是牧羊人,现在请同学们来设计一个方案,把3样东西安然无恙的带过河。我们来比一比看哪组同学最快完成。 过河的方案: 第一步:人和羊过河,人返回,留下羊; 第二步:人和狼过河,人和羊返回,留下狼; 第三步:人和菜过河,人返回,留下菜; 第四步:人和羊过河。 还有没有其它方案? 还可以在第二步时,人和菜先过河,人羊返回,留下菜;第三步,带狼过河。 48 2、64除以48,余数为 16 3、48除以16,余数为 0 答案:112和64的最大公约数为16 设m=112,n=64,利用辗转相除法,求最小公倍数 1、112除以64,余数为 2、64除以48,余数为 3、48除以16,余数为 48 16 0 4、(112×64)/16=448 答案:112和64的最小公倍数是448。 x+y=a 2x+4y=b 解方程组得:x=2a-b/2 y=b/2-a ab? 一条流线 表示算法流向出口或入口连接点 连接圈 表示从某一框到另一框的流向 流线 一流入线两流出线(T和F)但同时只能一流出线起作用 框中标明判定条件并在框外标明判定后的两种结果的流向 判定框 只有一流入线和一流出线 框中标明进行什么处理 处理框 只有一流入线和一流出线 框中标明输入、输出的内容 输入、输出框 开始框:一流入线 结束框:一流出线 表示算法的开始或结束 起始、终止框 流线 说明 符号名称 图形符号 开始 输入a,b的值 求x=2a-b/2 求y=b/2-a 输出x,y的值 结束 ①以m除以n,令所得的余数为r。 ②若r=0,则输出结果n,算法结束;否则,继续步骤③. ③令m=n,n=r,并返回步骤①继续进行。 ①输入a和b的值; 鸡兔同笼 ②求x=2a-b/2; ③求y=b/2-a; ④输出x和y的值;

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档