资源简介 (共33张PPT)法算The concept and description of the algorithm2.1算法与算法描述Content目录旧知回顾新知学习课堂巩固拓展思考第一部分旧知回顾新知学习课堂巩固拓展思考前课重点大数据的特征都有哪些?复习:1.3 数据科学与大数据大数据处理过程都有那几步?前课重点大数据具有价值,但价值密度低大数据的数据量非常大即数据类型繁多,不仅包括传统的格式化数据,还包括来自互联网的网络日志、视频、图片、地理位置等大数据的特征都有哪些?数据类型多价值密度低数据规模大处理数据快数据生成速度快,要求对数据进行快速处理前课重点数据采集大数据处理过程都有那几步?数据挖掘应用数据预处理数据分析第二部分旧知回顾新知学习课堂巩固拓展思考一、认识算法体 验 思 考由于城市中的人口密集度高,在有限的空间内进行锻炼成为了大部分人的不二选择,所以智能跑步机逐渐成为了人们家庭中常备的运动器材。为了满足不同人群的锻炼需求,提高锻炼效果,常见的家用智能跑步机可以提供多种预设模式选择的功能,例如“心率跑”“坡度跑”等,如图2.1所示。思考:1.智能跑步机是如何根据用户选择的跑步模式,控制用户的具体跑步过程的 2.当设定为某种跑步模式时,跑步机又是如何根据不同的人和实时运动的情况行调节,从而使人获得最佳运动效果的 一、认识算法智能跑步机可以根据用户自身需求选择智能计划包,可选择散步、暴走、模拟山地、日常养生等日常最常用的智能计划包方案,另外使用APPF还可以模拟真实风景的虚拟实景模式,比如在户外的马路上或者风景优美的景区道,将来可以结合VR虚拟现实眼镜来进一步提升虚拟场景的体验。智能跑步机可根据性别、年龄、身高、腰围、臀围、体重等多项人体参数,计算出用户体质特征及其所适用的运动量、运动强度,这样家里的女人、老人、孩子就根据自己的实际需求来设定跑步健身计划,改变过往盲目的、没计划的跑步模式。计算机解决问题依靠的是程序,而程序的编写依赖于算法和计算机“语言”, 即首先将需要解决的问题分解为若干个明确的步骤(算法),然后在用计算机能够接受的“语言”准确的描述出来,这样计算机才能够解决问题。计算机如何解决实际问题?这里输入简单的文字概述这里输入简单的文字概述点击添加标题一、算法的概念大家用列举的办法解决了这个问题,如果可能性更多问题更复杂,怎么办?算法输入计算机枚举法/穷举法算法是什么?在学习和生活中我们常常使用算法的知识来解决问题。请根据你刚刚解决问题的思路,小组讨论得出你对算法的概念,以及算法应具备的特征。一、算法的概念算法在生活和学习中,人们经常会运用到算法(algorithm)知识,只是很少意识到。从广义上讲,算法是为解决一类特定问题而采取的确定的、有限的步骤。它描述出某类问题求解的方法和过程,在整个问题解决过程中起着重要的作用。在计算机领域,算法作为一个精心设计的运算序列,描述了计算机如何将输入转化为输出的过程。一、算法的概念大家说一说生活中会用到哪些算法知识?1.将设计人员设计好的三维模型交给计算机来渲染,可以实现三维虚拟场景生成;2.将下棋的规则和方法借助计算机来实现,可以实现人与计算机对弈;3.将人对图片的识别和认识过程通过模型设计让计算机进行模拟,可以实现图像的自动识别等等。算法其实是对解决问题办法的抽象概念:从广义上讲,算法是为解决一类特定问题而采取的确定的、有限的步骤。在计算机领域,算法作为一个精心设计的运算序列,描述了计算机如何将输入转化为输出的过程。一、算法的概念有输入有输出确定性有穷性并不是所有解决问题的步骤都是算法,算法一般具有以下特性:二、算法的特征可行性二、算法的特征算法特征一个算法可以有一个或多个输出,以反映对输入数据加工后的结果。算法的有穷性指算法必须能在执行有限个步骤之后终止,也就是算法步骤不能是无限的。算法中的每一步操作都是可以执行的,或者都可以分解成计算机可执行的基本操作。算法的每个步骤都具有确定的含义,没有歧义。模糊不清、模棱两可或带有二义性的描述都会影响算法的确定性。有输入有输出有穷性可行性确定性一个算法一般要求有0个或多个输入,以描述运算对象的初始情况。三、算法的描述同学们刚刚是如何记录或者描述解决问题的方法呢?描述算法就是将解决问题的步骤,用一种可理解的形式表示出来。常用的描述算法的方法有自然语言、流程图和伪代码等。如何描述算法?语言?图像?思考:如何将“15秒”倒计时的算法描述出来?三、算法的描述用自然语言描述算法自然语言指人们日常所用的语言。用自然语言描述算法就是使用人们能读懂的简短语句对算法的步骤进行描述。其中,“倒计时15秒"算法可用自然语言描述为:步骤1:将计数器设为15;步骤2:如果显示的值大于或等于1,执行步骤3,否则倒计时结束;步骤3:输出显示屏信息,并保持显示1s,然后清除显示;步骤4:将显示屏的值减1,跳转至步骤2.用自然语言描述算法易于理解,它既可以描述生活中的算法,也可以描述在计算机中执行的算法。但是,自然语言的描述方法存在容易产生二义性的缺点,有可能干扰后续的编程实现。三、算法的描述用流程图描述算法流程图是一种常用的表示算法的图形化工具。用流程图描述的算法直观易读,问题解决的步骤清晰简洁,算法结构表达明确,很适合初学算法的人员使用。流程图中常用的符号和功能如下:开始/结束框表示算法的开始或结束输入/输出框表示输入或输出数据处理框框中指出要处理的内容判断框表示条件判断及产生分支的情况流程线用于控制流程方向连接点连接因页面写不下而断开的流程线三、算法的描述在实际问题解决中,经常会综合使用这三种结构。例如,“倒计时15s”的算法可用如下的流程图描述。思考:一个算法的流程图一定是相同的吗?三、算法的描述用伪代码描述算法用伪代码描述算法就是采用一种类似于程序设计语言的代码来表示算法。伪代码没有固定的、严格的语法规则,只要定义合理,没有矛盾即可。例如,“倒计时15s"的算法用伪代码可以描述为:t → 15while t>=1output tsleep 1scleart =t-1end while用伪代码描述算法回避了程序设计语言严格的书写格式,保持了语言叙述准确、无二义性的优点,结构性强,比较容易书写和理解。三、算法的描述循环结构分支结构顺序结构顺序结构每一个步骤按先后次序被执行,即执行处理A,然后执行处理B。分支结构根据条件的成立与否,选择执行不同的分支处理,当条件成立时用Tnue表示执行处理A;当条件不成立时用False表示,执行处理B。循环结构当条件成立时,反复执行处理A,一旦条件不成立就立即结束循环。三种控制结构:算法有顺序结构、选择结构和循环结构三种基本控制结构,可用流程图描述,如第三部分旧知回顾新知学习课堂巩固拓展思考巩固新知挑战困难:天干地支计算中国农历年份为例,在中国古代的历法中,甲、乙、丙、丁、戊、己、庚、辛、壬、癸被称为“十天干”,子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥叫作“十二地支”。十天干和十二地支依次相配,组成六十个基本单位,两者按固定的顺序互相配合,组成了干支纪年法。基于天干地支序列,如果已知2000年是庚辰年,则对于输入的公历年份2019年,可以通过以下方法来推算其农历年份(天干地支列表为循环推算, 即“癸”的后一个天干为“甲”,“亥”的后一个地支为“子”):天干:用2019减去2000,得到的差除以10取余后得到9,然后天干从“庚”向后推9位为“己”;地支:用2019减去2000,得到的差除以12取余后得到7,然后地支从“辰”向后推7位为“亥”。最后,可以推算出公历2019年是农历己亥年。因此,本问题可以抽象为已知天干、地支序列和对照的年份2000庚辰年basey,对于输入的公历年份year,求出其对应的农历年份。该问题的计算模型如下:天干:用year 减去basey,得到的差除以10取余后得到余数,然后根据余数的数值,在已知天干列表中从“庚”向后推算相应位数;地支:用year 减去basey,得到的差除以12取余后得到余数,然后根据余数的数值,在已知地支列表中从“辰”向后推算相应位数。巩固新知挑战困难:天干地支① 设定十天干、十二地支序列② 设定对照年份2000年及其所对应的天干和地支③ 输入公历年份year⑤ 根据计算模型计算该公历年份所对应的地支④ 根据计算模型计算该公历年份所对应的天干⑥ 输出该公历年份对应的农历年份。巩固新知挑战困难:天干地支tian=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]di=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"]basey=2000basetian=6basedi=4year=int(input("请输入年份:"))print(tian[(basetian+(year-basey))%10],sep="",end="")print(di[(basedi+(year-basey))%12])巩固新知挑战困难:天干地支法算The concept and description of the algorithm2.2算法的概念及其描述请完成学案课后作业,同学们再见!结 束!冒泡排序快速排序二、两种算法的比较VSExpand the thinking旧知回顾新知学习课堂巩固巩固思考第四部分WritingFindingSignal逻辑思维和计算思维中学生了解算法的基本设计方法,可以深入理解身边数字化工具的特征,能够利用算法思想解决实际问题,提高学习和生活效率,更好地融入信息社会。一、为什么学习算法冒泡排序快速排序二、两种算法的比较VS冒泡排序快速排序二、两种算法的比较VS可以看出,解决排序问题,“快速”排序算法比“冒泡”排序算法快很多。解决同一个问题会有多种方法,人们往往需要考虑算法的“时间复杂度”和“空间复杂度”,并根据需求设计合适的算法,从而提高效率。学习算法知识,了解算法的基本设计方法,可以深入理解身边数字化工具的特征,能够利用算法思想解决实际问题,提高学习和生活效率,更好地融入信息社会。算法贪心算法分支界限法回溯法空间复杂度穷举法动态规划法递推法递归法时间复杂度分治法三、算法风暴 展开更多...... 收起↑ 资源预览