专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

编程教学入门教程,编程教学方法

来源:小嗨整编  作者:小嗨  发布时间:2023-03-22 04:25
摘要:编程教学入门教程,编程教学方法自信息技术新课标以Python语言作为核心编程语言推荐以来,Python编程与算法教学成为落实新课标课程目标的基础。如何在中小学Python编程与算法教学中,落实课标精神,围绕“算法以及基于算法的问题求解”这一...

1.构建问题场景

斐波那契数列从0和1开始,之后的斐波那契数列系数就由之前的两数相加。高中数学必修五在讲解数列前n项和的课后资料中提到了斐波那契数列,作为数学知识生活化、发展学生抽象思维能力的拓展。

斐波那契数列(Fibonacci sequence)因为相邻两项的比无限趋近于黄金比等性质,又称黄金分割数列。它是意大利数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。假设一对刚出生的小兔子一个月后能长成大兔子,再过一个月便能生下一对小兔子,此后每个月生一对小兔子。如果不发生死亡,一年内逐月的小兔子对数是一组非常特殊的数字:1,1,2,3,5,8,13,21,34,55,89,144,……不难发现,从第三个数起,每个数都是前两个数之和,这个数列称为斐波那契数列。

在现代物理、准晶体结构、化学等领域,斐波那契数列都有直接的应用,斐波那契数列的通项公式表示如下图所示的公式(1)。

编程教学入门教程,编程教学方法

在算法教学中,斐波那契数列是最简单的递归定义函数,因此非常适合用来说明实现基本递归算法的方法。

2.简单递归实现算法

斐波那契数列的Python实现所需基本知识包括:使用if 语句实现简单迭代/循环、自定义函数、函数的递归定义。

斐波那契数列本身就是用递归形式定义的,Python是函数式编程语言,支持函数的递归定义,即函数体的内部包含对函数本身的调用。因此,公式(1)可以转换为一个合法定义的Python函数,并尝试让学生输出一些可很快通过人工验证的值(不要太大)(如下图)。

编程教学入门教程,编程教学方法

可以注意到,在计算最后一个值时是需要一点时间的。在上述的递归调用中,很多中间值要重复计算。如下图所示,在计算fib_1(4)时,fib_1(2)就重复计算了2次。显然,n的值越大,在计算fi b_1(n)的过程中,需要重复计算fib_1(k)(k<n)的次数就越多。

编程教学入门教程,编程教学方法

3.动态规划优化递归算法

为了优化斐波那契数列的递归实现,一个最简单的方法就是在每次计算中,将前面已经计算过的值“记忆”下来,不再重复计算。这种在计算过程中使用记忆的机制可以有效避免重复及浪费资源,是所谓动态规划方法的一个最简单的例子,动态规划就是指资源的动态再分配。动态规划实现需要涉及如下Python知识:Python字典、Python的Dict内建对象(一种特殊的Python字典)、对迭代器使用if语句。下图所示代码是一个带有记忆的版本。

编程教学入门教程,编程教学方法

作为对比,计算fib_2(20)会产生fib_2()的39次自调用;而若使用fib_1(),则计算fib_1(20)会产生21891次调用。

在Python中,任意对象只要定义了某种_next _()方法,就是一个迭代器。因此,Python中的容器类数据类型,如列表、元组、字典、集合、字符串等,都可以用于创建迭代器。有了迭代器的概念,迭代的概念就比较容易理解了:迭代就是从迭代器中依次抽取元素的过程。

4.装饰器优化递归算法

Python有一个内建的“装饰器”(decorator),可用于自动记忆任何函数。通过使用这个装饰器,计算斐波那契数列的函数可以更加简化。

以下实现使用Python的高级特性——Python装饰器语句。简单地讲,装饰器就是在不改变原来函数代码的情况下,给其增加一些附加功能,如上面记忆函数中间值的功能。

下图代码实现的函数fib_3()与fib_1()几乎完全相同,但使用了装饰器@functools.1ru_cache(),其中maxsize属性用来指示在函数的最近调用中应该缓冲多少次,设置maxsize=None表示对次数不做限制。

编程教学入门教程,编程教学方法

5.使用元组拆包优化递归算法


本文地址:软件教程频道 https://www.eeeoo.cn/ruanjian/936278_2.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


软件教程
小编:小嗨整编
相关文章相关阅读
  • 泰剧迷app官网入口(泰剧迷app使用教程)

    泰剧迷app官网入口(泰剧迷app使用教程)

    泰剧迷app官网入口(泰剧迷app使用教程)随着泰剧在国内的流行,越来越多的观众想要找到一款能观看泰剧的软件。泰剧迷App就是一款深受剧迷喜爱的泰剧播放器。本文将为您详细介绍泰剧迷App的官网入口以及使用教程,让您轻松观看喜欢的泰剧。泰剧迷...

  • 正方形手工折纸教程(手工折纸教程简单又漂亮)

    正方形手工折纸教程(手工折纸教程简单又漂亮)

    正方形手工折纸教程(手工折纸教程简单又漂亮)手工折纸是一种充满创意和乐趣的技艺,通过简单的折叠,就能让纸张变成各种各样的形状。今天,就让我来为大家介绍一款简单又漂亮的正方形手工折纸教程,让你轻松掌握制作技巧。一、准备材料1.彩色纸张(推荐使...

  • 小数点除法竖式教程(百位除法竖式教程)

    小数点除法竖式教程(百位除法竖式教程)

    小数点除法竖式教程(百位除法竖式教程)小数点除法竖式是指在除法运算中,被除数和除数均含有小数点时,按照一定规则进行竖式计算的方法。百位小数点除法竖式是指被除数和除数的整数部分均为百位数的除法运算。一、百位小数点除法竖式步骤1.将被除数和除数...

  • catia教程入门教程(catia教程在哪可以看)?

    catia教程入门教程(catia教程在哪可以看)?

    catia教程入门教程(catia教程在哪可以看)?CATIA作为一款广泛应用于机械设计、汽车制造、飞机制造等行业的3D建模软件,具有强大的功能和优越的建模体验。为了让初学者快速上手,本文将为您提供一份详细的CATIA入门教程。CATIA是...

  • 水彩画教程步骤(水彩画教程初学者简单)

    水彩画教程步骤(水彩画教程初学者简单)

    水彩画教程步骤(水彩画教程初学者简单)下面带来比较简单的初学者水彩画教程步骤。第1步:铅笔削尖,画出建筑物和山的轮廓形。第2步:用黑色针管笔描边,建筑物的窗户排线;树木和花草随意的笔触带过即可。第3步:水彩笔调114号永固浅绿画塔顶的颜色;...

  • 打领带教程只需四步(打领带教程图片)

    打领带教程只需四步(打领带教程图片)

    打领带教程只需四步(打领带教程图片)领带的打法有几十种,从简单到复杂,常见到不常见的都有。在这里,教给大家一种十秒快速打领带的技巧,以及适合初学者的四种简易打法。1.四手结打法。四手结的打法和系红领巾有点相似,打出来的结小巧,看起来有点不太...

  • 金刚结手绳编织教程(金刚结手绳编织图片)

    金刚结手绳编织教程(金刚结手绳编织图片)

    金刚结手绳编织教程(金刚结手绳编织图片)金刚结是藏传佛教特有的一种护身符,代表:九尊、金刚,它是经过高僧大德加持以后对人、对物赋有灵气的一种法器。金刚结的寓意是一切佛母爱护着我们犹如自己的母亲,一切护法神众在我们的周围,帮助我们遣除诸违缘,...

  • 碧蓝航线ios反和谐2024(碧蓝航线ios反和谐教程)

    碧蓝航线ios反和谐2024(碧蓝航线ios反和谐教程)

    碧蓝航线ios反和谐2024(碧蓝航线ios反和谐教程)碧蓝航线是一款二战题材的战舰少女战斗养成手游。游戏中包括丰富的角色养成、舰队搭配、战斗策略、任务系统等玩法。下面带来碧蓝航线ios反和谐2024教程:碧蓝航线ios反和谐教程1.打开游...

  • 周排行
  • 月排行
  • 年排行

精彩推荐