资源简介 (共24张PPT)义务教育信息科技(2024)五年级 第1课时第四单元 发挥算法的优势五年级上册第14课 算法效率比一比12知道解决同一个问题可以有不同的算法,不同的算法具有不同的效率。.通过实例比较和算法分析,了解算法执行的关键步骤和执行次数,体会算法存在的效率差异。学习目标第14课 算法效率比一比这一课以简单的累加运算为例,了解用不同算法解决同一问题的过程,认识其中存在的效率差异。第14课 课堂导入 一堆物体摆放如左图所示,要统计有多少个,你能想到哪些方法? 这些方法有什么不同呢?问题情境第14课 学习活动三 感受不同算法的运算效率二 累加运算的效率分析学习活动用不同方法统计物体数量一一、用不同方法统计物体数量 要统计下图所示物体的个数,常用的有两种方法。 第一种算法观察发现,物体共10层,从上到下,每层分别是1至10个。把物体逐层进行累加,就可以获得物体个数。 1+2+3+4+5+6+7+8+9+10=55第14课 学习活动方法对比观察图形,发现可以用前面学习过的方法,即利用正反放置的两个梯形组成平行四边形,通过求平行四边形中物体的个数来计算。平行四边形中物体个数 = 每层个数×层数 = (1+10)×10 = 110个梯形中物体个数 = 平行四边形中物体个数÷2 = 110÷2 = 55个第14课 学习活动第二种算法一、用不同方法统计物体数量方法对比依据上述计算方法,可以总结得到求解一组连续自然数累加之和的公式。 累加的和 =(第一个数+最后一个数)×数的总个数÷2例如,自然数从1到n的累加之和可以表示为:s = ( 1 + n )* n / 2因此,s = ( 1 + n ) * n / 2 = ( 1 +10 ) *10 / 2= 55第14课 学习活动一、用不同方法统计物体数量第二种算法方法对比通过比较发现:算法1简单直观,易于理解,算法2所用的步数较少,计算起来更快。 通过求“1+2+3+…+10”的两种不同算法,说明解决同一个问题时,不同的算法会有不同的步骤,也就可能存在不同的效率。第14课 学习活动一、用不同方法统计物体数量方法对比 通常,用计算机解决问题时会用以下两种方法来比较算法的效率。一是比较算法运行所需要的时间。二是比较算法运行时所需的步数或者占用的资源。二、累加运算的效率分析第14课 学习活动算法效率比较的方法 但是,如何衡量计算机在运行程序时所需的时间、执行的步数、占用的内存等,目前没有统一的准则,所以通常选择比较其中的一个方面。下面主要从时间上来进行分析。 大家听过数学家高斯小时候计算“1+2+3+…+100”的故事吧?高斯使用第二种算法很快给出了答案,比所有其他孩子的速度都快。 时间对比第14课 学习活动 我们先来做一个“合理假设”:如果做1 次加法用时1秒、做1次乘法用时10秒、做1次除法用时15秒。二、累加运算的效率分析高斯怎么做的呢? 用第一种算法计算: 需要计算约99次加法,这样即使每次加法只用1秒,而且每次中间相加的结果都正确,最终也需要大约99秒的时间才能计算出结果。 第14课 学习活动时间对比二、累加运算的效率分析 用第二种算法来计算:只需要1次加法(即100 + 1)、1次乘法(即101×100)和1次除法(即除以2),需要约1+10+15 = 26 秒。 单从计算步骤和时间上看,第二种算法似乎比第一种更高效。这就是在“合理假设”前提下,高斯比其他同学算得更快的一种解释。第14课 学习活动时间对比二、累加运算的效率分析但是,问题并没有那么简单。因为做乘法和除法时,通常比做加法需要更长的时间。因此,如果以上“合理假设”并不成立。比如,如果做1次乘法或1次除法都需要50秒,那么用第二种算法所需时间就会变成1+50+50=101秒。 第14课 学习活动时间对比二、累加运算的效率分析 通过上述分析可知,从让计算机解决问题的角度看,要准确地比较两个算法究竟哪个更高效,往往比我们预想的要难很多。通常需要从数据量、步骤多少、所需时间等方面综合考虑。 在设计算法用计算机解决问题时也是如此,通常需要经过多次的比较、实验与探索来获得结论。第14课 学习活动时间对比二、累加运算的效率分析第14课 学习活动三、感受不同算法的运算效率运算效率比较解决同一个问题通常可以用不同的算法,选择不同算法并编程实现后,程序一般会在运算速度、计算精度等方面有不同的表现。下面通过用程序验证上述累加运算的两种算法,体会算法的效率差异以及不同程序实现引起的差异。“累加1.py”程序是用算式直接累加与用公式累加的对比。“累加2.py”程序是用循环结构实现累加与用公式累加的对比。第14课 学习活动三、感受不同算法的运算效率运算效率比较操作步骤如下。第1步:打开配套资源中的“累加1.py”程序,运行这个程序。第2步:输入要重复执行的次数,观察运行结果。例如,分别输入500、1 000、10 000、100 000等,对比两种算法所用的时间。第3步:打开配套资源中的“累加2.py”程序,运行这个程序。第14课 学习活动三、感受不同算法的运算效率运算效率比较第4步:输入要重复执行的次数,观察运行结果。例如,同样分别输入500、1 000、10 000、100 000等。第5步:尝试用更多更大的数进行反复实验。这样经由多次数值实验得出的结论会更加趋于稳定,也更加可靠。第6步:依据运行结果,对算法与程序实现的效率进行总结。1.解决同一个问题时,不同的算法会有不同的步骤,也就存在不同的效率。2.用计算机解决问题时,通常会从执行步骤、执行时间、内存占用等方面比较算法的效率。3.有些人计算起来较困难的问题,可以尝试通过算法利用计算机来解决,充分发挥计算机的计算速度和存储能力优势。第14课 课堂总结计算圆周率的效率比较。圆周率作为数学中的一个重要常数,其更多位数的精确值求解一直是数学家们所追求的。我国南北朝时期的数学家祖冲之,经过刻苦钻研和反复演算,推算出圆周率π的值在3.1415926和3.1415927之间,这一结果在当时已经非常精确。祖冲之通过其卓越的数学才能和不懈的努力,为数学的发展作出了重要贡献。配套资源中有两个计算圆周率的程序,打开这两个程序并运行,对比计算圆周率的效率。第14课 拓展与提升提示:两个程序分别采用了两种不同的算法。算法117世纪,有学者找到了一种计算圆周率的方法。根据这个方法,只要计算足够多的数据项,就可以获得圆周率的近似值。算法2很多年后,又有学者提出了另一种计算圆周率的方法。同样,只要计算足够多的数据项,也可以得到圆周率的近似值。第14课 拓展与提升提示:运行第一个程序时需要的时间稍长,计算出来的圆周率精确到了3.1415左右。运行第二个程序时几乎可以立刻得到计算结果,计算出来的圆周率的精确位数也更多。因此,依据算法2编写的程序,所需计算时间更短、计算结果更精确,效率更高。实际上,第二个程序中的公式每多循环一次,通常可以多得到一位精确数字。第14课 拓展与提升下课啦! 展开更多...... 收起↑ 资源预览