高中中图版 (2019)第2章 算法与程序实现2.4 常见算法的程序实现2.4.1 基于解析算法的问题解决获奖课件ppt
展开理解解析算法和枚举算法,根据需要选用这两种算法, 编程实现简单问题求解。
认识问题解决中不同算法的效率,完成项目程序的调试 与运行。
通常,行人步行速度约为4.4km/h,观察到信号灯变化后的反应时间约为2s。要保证过街行人能走过长为20m的人行横道,人行过街绿灯时长至少需要设置为多少?
思考:1、写出求解绿灯最短时长的计算公式: 。2、结合实际道路情况,思考在设置人行过街绿灯时长时需要考虑哪些因素, 试着给出绿灯时长的最优设置模型。
2.4.1 基于解析算法的问题解决
2.4.2 基于枚举算法的问题解决
2.4.3 算法与程序实现的综合应用
解析算法指通过找出解决问题的前提条件与结果之间关系的表达式,并计算表达来实现问题的求解. 许多问题可以通过分析,抽象成数学模型,借助解析式,用已知条件为变量赋值进行求解。 例如,在“体验探索“中求解行人过马路最短绿灯时长时,可以应用行程问题相关公式,先计算行人过马路的时间 ,然后建立数学模型,得到行人过街绿灯最短时长公式 最后只要将已知条件代入公式 即可完成该问题求解。
例1:自由落体运动问题 从离地500m的高处自由温下一个小球,求从开始落下的时刻起,小球在最后1s内的位移(重力加速度g以9.8m/s2“计)。(1)分析问题已知条件:小球离地高度500m,重力加速度g为9.8m/s2;求解目标:小球在下湛最后1s内的位移;已知与未知的关系:可用自由温体运动位移与时间关系的公式h=½gt2“,求解出下落时间t,以及最后1s内小球的位移。
(2)设计算法 在该问题中,要计算最后1s内小球的位移,首先要求出小球的落地时间t,由h=½gt2可以得出落地时间t= ;然后计算前(t-1)s小球下落的高度hx;最后求出总高度h(500m)与hx的差hh,即为最后1s内小球的位移。
(3)编程实现与调试根据算法设计进行编程实现,程序示例如下:imprt mathh=500g=9.8t=math.sqrt(2*h/g)hx=g*(t-1)*(t-1)/2hh=h-hxprint(“小球最后1s下落的位移是:“,hh,“m“)
编写程序研究某山地的气温分布 某地区为了开发山区农业,需要了解山地的气候变化。现已知该地山区海拔每升高100m,气温下降约0.5℃,山地最高海拔为1500m,山脚下的年平均气温为22℃(假设山脚海拔力0m)。思考:1.依据气温随海拔升高而变化的规律,写出计算该山地不同海拔高度的气温的解析式,并编程实现。2.某种植物适宜生长在气温为18~20℃的山区,如果要分析这种植物应被种植在该山地多高的地区为宜,需要如何修改算法?
枚举法是依据问题的已知条件,确定答秦的大致范图,在此范围内列举出它所有可能情况的方法。在列举过程中,既不能遗漏,也不能重复,通过逐一判断,验证哪些情况满足问题的条件,从而得到问题的答柳。
例2:票据中模糊数字推断问题一张票据上有一个由4位数字组成的编号,甲说数字编号的前两位数字相同,但都不是零;乙说数字编号的后两位数字是相同的,但与前两位不同;丙说数字编号是一个整数的二次方。试根据以上线累推断出编号。(1)分析问题已知条件:假设4位数字的编号是AABB,其中A≠0,A≠B,旦AABB是一个整数的二次方;求解目标:票据中的数字;已知与未知的关系:要求解的4位数字的编号必须同时满足所有的已知条件。
(2)设计算法根据问题分析,只要一一列举出4位数字AABB中A与B的所有可能组合,保证A≠B且A≠0,再验证二次方问题,就可以得到问题的解。因此,该问题可使用枚举算法求解完成。
(3)编程实现与调试根据算法设计进行编程实现,程序示例如下:imprt mathfr A inrange(1,10): fr B in range(0,10): if A !=B: K=A*1000+A*100+B*10+B c=int(math.sqrt(k)) #求4位敷字44BB的算术平方根并取其整数部分 if c*c==k: #若k是完全平方数,则找到读票据编号 print(“票据编号是:“,k)
实践活动:寻找1000以内的所有素数编程求解1000以内的所有素数。素数是在大于1的自然数中,除了1和它本身以外不再有其他因数的数,如2,3,5,7,11,...思考:1.分析该问题的枚举范围和验证条件。2.用流程图描述问题求解的算法,并编程实现。
算法设计及其程序实现是用计算机解决问题的核心过程。 在具体的问题解决中,需要综合应用不同的算法思想并编程实现。当程序运行结果不能完全满足问题求解要求时还要对算法和程序进行完善和优化。
例3:查找文稿中高频词的问题 学校开展经典诵读活动,小明在阅读《三国演义》时,为了分析小说的写作特色,想把小说中出现次数最多的20个词查找出来。想一想小明如何通过编写程序来实现。(1)分析问题已知条件:文本文件《三国演义》;求解目标:《三国演义》中的高频词(以出现次数最多的20个词为例);已知与未知的关系:统计《三国演义》文本中词频,找出出现次数最多的20个词。
(2)设计算法 在查找文稿中高频词的问题求解中,除了要完成读取文件和显示输出内容,还要重点实现分词、词频统计和排序等功能。因此,该问题可以分解为以下5个功能。
(1)读取文件:提前准备好《三国演义》文本文件,打开并读取文件内容。
(2)中文分词:在Pythn语言中利用jieba分词功能,对读取到的《三国演义》 字符串进行分词处理。
(3)词频统计:词频统计的过程主要应用了枚举算法,对于“词汇表”中的每一个 词,依次计算出各自的出现次数,生成一个包含词和次数的“统计表”。
图2.4.7 《三国演义》小说中词语出现次数统计问题求解流程图
(4)词频排序:要找到出现次数最多的20个词,需要对统计出来的词语按次数从大到小进行排序。在Pythn语言中直接调用内置的排序函数快速实现序列排序。(5)显示输出:降序排序后,序列中的前20个元素可认为是《三国演义》小说中出现次数最多的20个词。此时,只需要显示输出序列中这前20个元素的值(包括词和对应次数)即可。
(3)编程实现与调试 根据算法设计进行编程实现,程序示例如下:
# 打开“三国演义.txt“文件,读取文件内容Imprt jieba #导入jieba分词if=pen(“三国演义.txt“,“r“*,encding=“utf-8“) #打开文件txt=f.read( ) #读取文件肉容# 分词wrds=jieba.1cut(txt) #将中文文本拆分为词语保存到列表中#统计cunts={ } #建立空字典,用于存储词和出现次敷fr wrd in wrds: if len(wrd)==1: #单字的词语怨略不计 cntinue else: cunts[wrd]=cunts.get(wrd,0)+1 #出现次戴+1# 排序items=1ist(cunts.items()) #字其转接为列表后才可以排库items.srt(key=lambda x:x[1],reverse=True) #对列表items接“冲戴“降序排序#松出前28个元素的值fr i in range(20): print(items[i][0],items[i][1]) #输出词和出现次敷
断点调试是一种较为直观的程序调试方式,它通过设置断点跟踪变量的取值,观家运行结果,进行程序调试。断点调试的基本方法为:*进入调试状态;*设置断点;*检查运行状态下各个变量的值,确定错误的位置,并进行修改;*反复调试直至程序运行正确。
实践活动:编程查找小说中的主要人物修改前面编写的《三国演义》小说高频词查找程序,实现功能:找出小说中出场次数最多的10位人物。 1.在前面已经查找到的20个高频词中,包含有“却说““二人““不能“等与人名无关的词语。想一想如何去除这些词语,只显示10位出场次数最多的主要人物的人名?试着修改程序。 2.统计小说中的高频词,不仅可以帮助我们了解其中的主要人物,可以用来分析人物的主要活动地点及人物间的关系等。试着编程分析自己感兴趣的一本小说,说一说你的发现。
1、交通信号“绿波带“是根据车辆运行情况对各路口红绿灯进行协调,使车辆通过路口时能连续获得一路绿灯。某路段启用了“绿波带“技术,如图所示,全长1.6km,5个灯控路口,提示的“绿波速度“为60km/h,假设5个灯控路口间距相等。在仅考虚一辆车通行的情况下,如果实现“绿波“交通,那么相邻两个路口间绿灯亮起的最大时间间隔应该设置为多少?思考该问题求解的算法并编程实现。
2.韩信是汉初著名军事家,传说他统计士兵数目有个独特的方法。例如,先令士兵排成5列纵队,结果余1人;接着,命令士兵排成列纵队,结果余5人;再命令士兵排成7列纵队,结果余4人;最后,命令士兵排成11列纵队,结果余10人。这样他便知道士兵的总人数了。这种计数的方法被后人称为“韩信点兵“。试编写程序计算士兵的数目。3.编写程序,统计一段文本中分别有多少个汉字、英文字母、数字和其他字符。
高中信息技术中图版 (2019)必修1 数据与计算3.2.1 数据采集获奖ppt课件: 这是一份高中信息技术中图版 (2019)必修1 数据与计算3.2.1 数据采集获奖ppt课件,共34页。PPT课件主要包含了21数据采集,明确数据需求,确定数据来源,选择采集方法,实施数据采集,22数据整理,23数据安全,数据安全的威胁,数据保护的方法,练习提升等内容,欢迎下载使用。
高中信息技术中图版 (2019)必修1 数据与计算第1章 认识数据与大数据1.2 数字化与编码1.2.1 数字化及其作用优秀ppt课件: 这是一份高中信息技术中图版 (2019)必修1 数据与计算第1章 认识数据与大数据1.2 数字化与编码1.2.1 数字化及其作用优秀ppt课件,共27页。PPT课件主要包含了课堂导入,声音的数字化过程,采样频率,第三步编码,二进制与数制转换,十六进制,23数据编码,24数据压缩等内容,欢迎下载使用。
高中信息技术中图版 (2019)必修1 数据与计算1.3.1 数据科学的兴起优质课ppt课件: 这是一份高中信息技术中图版 (2019)必修1 数据与计算1.3.1 数据科学的兴起优质课ppt课件,共21页。PPT课件主要包含了数据与科学发现,体验探究,大数据特征,大数据技术,实践活动,大数据应用之生活服务,大数据应用之智慧城市,大数据应用之医疗健康等内容,欢迎下载使用。