![4.3非数值计算课件-高中信息技术教科版必修一课件_第1页](http://file4.renrendoc.com/view3/M03/03/25/wKhkFmaPHwiAUKAJAAEmyFKHja4607.jpg)
![4.3非数值计算课件-高中信息技术教科版必修一课件_第2页](http://file4.renrendoc.com/view3/M03/03/25/wKhkFmaPHwiAUKAJAAEmyFKHja46072.jpg)
![4.3非数值计算课件-高中信息技术教科版必修一课件_第3页](http://file4.renrendoc.com/view3/M03/03/25/wKhkFmaPHwiAUKAJAAEmyFKHja46073.jpg)
![4.3非数值计算课件-高中信息技术教科版必修一课件_第4页](http://file4.renrendoc.com/view3/M03/03/25/wKhkFmaPHwiAUKAJAAEmyFKHja46074.jpg)
![4.3非数值计算课件-高中信息技术教科版必修一课件_第5页](http://file4.renrendoc.com/view3/M03/03/25/wKhkFmaPHwiAUKAJAAEmyFKHja46075.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
非数值计算Non-numericCalculations朔州市实验中学校李娜目标运用合适的算法形成解决问题的方案。GOALS体验递归算法,并结合具体问题开展编程实践。了解算法设计中的分治思想,并运用二分查找解决实际问题。计算的一定是数吗?导入①计算一定是数吗?除了数还有什么?这些属于数值计算吗?计算一定是数吗?01除了数还有什么?0203这些属于数值计算吗?导入在数值计算中,我们更多考虑的是“数”,但计算应该是一个更广泛的领域。计算的对象可以是自然界和人类社会的一切事物。更确切地说,计算的对象可以是某些信息,如数据、文字、语言、图形、知识、事物的运动过程及思维过程。如果说数值计算主要探讨数学问题的话,那么非数值计算更多探讨"算法”问题。
在解决非数值类计算问题时,一些基础的思维方式可以借鉴,如分治、递归、解析等。分治算法:重要的二分法分治策略②
小问题小问题小问题难以解决的较大问题小问题小问题分治策略分治的设计思想,是将个难以直接解决的大问题,分割成些较小的同类问题,各个击破,最终达到解决问题的目的。二分查找实际上一就是分治策略的种典型运用。二分查找二分直接二分查找importrandomx=random.randint(1,1000)while0<x<1000:y=int(input("请输入这个数:"))ifx<y:print("大了")elifx>y:print("小了")else:print("就是",x)breakrandom包可以称为随机包,它有如下函数:random.randint(1,10)#产生1到10的一个整数型随机数random.random()#产生0到1之间的随机浮点数random.uniform(1.1,5.4)#产生1.1到5.4之间的随机浮点数,区间可以不是整数random.choice('tomorrow')#从序列中随机选取一个元素random.randrange(1,100,2)#生成从1到100的间隔为2的随机整数小游戏:如何找出1-1000之间的某个数?
二分查找二分查找又叫折半查找,该方法主要将数列有序排列,采用跳跃式的方式查找数据。以递增数列为例,先以中点位置的元素作为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。每一次比较后可以将查找区域缩小一半。第一次分割第二次分割第三次分割二分查找x=int(input("请输入要查找的整数:"))step=0low=1high=1000while(low<=high):mid=(low+high)//2step=step+1ifmid>x:high=mid-1elifmid<x:low=mid+1else:breakprint("查找次数为:",step)input("运行完毕,请按回车键退出...")思考:如果输入的数据不在范围内,会出现什么结果呢?程序还需要在哪些地方进行完善?二分查找x=int(input("请输入要查找的数据:"))step=0 #记录查找次数flag1=1 #目标区域左边界flag2=1000 #目标区域右边界ifflag1<=x<=flag2:while(flag1<=flag2):mid=(flag1+flag2)//2step=step+1ifmid>x:flag2=mid-1elifmid<x:flag1=mid+1else:breakprint("查找次数为:",step) #输出次数else:print("查询超出范围。")思考:如果输入的数据不在范围内,会出现什么结果呢?程序还需要在哪些地方进行完善?③递归算法玩转“汉诺塔”小游戏有一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。汉诺塔游戏思考:假设移动一次需要1秒,共需多长时间呢?一个平年365天有31536000秒,闰年366天有31622400秒,平均每年31556952秒,计算一下:移动3个木盘的方法是:根据木盘叠放规则,要使A杆上最大的木盘(记为x)移动到C杆上(子问题1,如图第4步),必须先把x上方的所有木盘移动到B杆上(子问题2,如图4中的前3步),然后再将B杆上所有的木盘移动到C杆上(子问题3,如图中的后3步)。汉诺塔游戏3个木盘的移动问题成功解决了,就可以解决更多木盘的移动问题了。第1步:A→C第2步:A→B第3步:C→B第4步:A→C第5步:B→A第6步:B→C第7步:A→C将n个木盘从A杆移动到C杆,需要借助中间的B杆。只要超过一个木盘,在移动过程中,总会存在起始杆、过渡杆及目标杆的问题。因此,定义函数时,用到了4个参数:hanoi(n,A,B,C),n表示需要移动的盘子数量,A表示盘子的起始杆,B表示中间过渡杆,C表示目标杆,如图4所示。汉诺塔游戏起始杆A过渡杆B盘子数n目标杆Chanoi(盘子数,起始杆,过渡杆,目标杆)汉诺塔游戏hanoi(n,A,B,C)从A移到Chanoi(n-1,B,A,C)hanoi(n-1,A,C,B)前n-1个木盘从A移动到了B前n-1个木盘从B移动到了C汉诺塔递归过程图示汉诺塔游戏defhanno(n,s,m,t):#定义一个函数,n层塔,将盘子从s借助m移动到tifn==1:print(s,'-->',t)#将一个盘子从s移动到telse:hanno(n-1,s,t,m)#将前n-1个盘子从s移动到m上
print(s,'-->',t)#将最底下的最后一个盘子从s移动到t上
hanno(n-1,m,s,t)#将m上的n-1个盘子移动到t上#主程序n=int(input('请输入汉诺塔的层数:'))hanno(n,'A','B','C')input("运行完毕,请按回车键退出...")代码实现2个金片,移动几次汉诺塔游戏4个金片,移动几次5个金片,移动几次3个金片,移动几次3次15次31次7次一种思维模式,抽象表达的手段,求解问题的方法。直接或间接地调用自身的方法,可以简单类比为具有自相似性重复的事物。基本思想:把规模较大的问题层层转化为规模较小的同类问题求解递归算法举例:斐波那契数列“1,1,2,3,5,8…”可定义为数学领域的递归算法用函数自身来定义该函数“分”“治””合”(1)分:将原问题分解成K个子问题。(2)治:对这K个子问题分别求解。如果子问题的规模仍然不够小,则将其再分解为K个子问题,如此进行下去,直到问题足够小时,就很容易求出子问题的解。(3)合:将求出的小规模问题的解合并为一个更大规模问题的解,自下而上逐步求出原问题的解递归的重要组成递推关系、边界条件(保证递归能在有限次计算后得出结果,而不会产生无限循环地情况)递归算法分治(二分法)+递归课堂测试④总结CONTRACTEDPUREANDFRESHWealthislikewater.Ifit'saglassofwater,youcane
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年分离纯化控制系统合作协议书
- 人教版 八年级英语下册 Unit 10 单元综合测试卷(2025年春)
- 人教版化学九年级上册第一单元《-走进化学世界》测试试题(含答案)
- 2025年产品买卖协议常用版(4篇)
- 2025年个人车辆出租合同常用版(4篇)
- 2025年代理进口合同标准范文(2篇)
- 2025年九年级年级组长管理工作总结(四篇)
- 2025年人防工程施工合同(三篇)
- 2025年个人股权的投资协议(三篇)
- 2025年九年级班主任年度期末工作总结模版(二篇)
- 上海市杨浦区2022届初三中考二模英语试卷+答案
- 高中英语原版小说整书阅读指导《奇迹男孩》(wonder)-Part one 讲义
- GB/T 4745-2012纺织品防水性能的检测和评价沾水法
- 山东省中考物理总复习 八上 第1讲 机械运动
- 北京理工大学应用光学课件(大全)李林
- 国家综合性消防救援队伍消防员管理规定
- 河南省三门峡市各县区乡镇行政村村庄村名居民村民委员会明细
- 2023年全国各地高考英语试卷:完形填空汇编(9篇-含解析)
- 五年级上册数学习题课件 简便计算专项整理 苏教版 共21张
- 疼痛科的建立和建设
- 运动技能学习PPT课件
评论
0/150
提交评论