1、基础教育精品课3.2.5函数神奇的斐波那契数列(第一课时)年年 级级:一年级:一年级 学学 科科:信息技术(浙教版):信息技术(浙教版)1 掌握函数的构造方法 函数的构造(函数名、参数结合、函数体、函数值)和调用方法。3 掌握模块中常数和函数的使用 掌握通过自定义函数,模块中的常数和函数编写程序解决实际问题学习目标2 掌握模块的导入方法 理解模块的功能及应用,掌握模块的导入方法。“故事得从西元1202年说起,话说有一位意大利青年,名叫斐波那契。在他的一部著作中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,一年内没有发生死
2、亡,问:一对刚出生的兔子,一年内繁殖成多少对兔子?情境导入 问题分析斐波那契数列斐波那契数列:1,1,2,3,5,8,13,21,34,55,89,144,233第一项和第二项是1,之后的每一项为之前两项的和。设计算法 函数 在用算法解决问题的过程中,经常采用模块化程序设计思想,将问题分解成若干个子问题,并用相对独立的程序段来针对性解决各个子问题,调高程序设计大效率。在python中,主要利用函数、模块等方式实现模块化程序设计。def 函数名(参数集合):return 函数值 def area(a,b,c)#定义函数area,a,b,c为三角形边长 p=(a+b+c)/2 s=(p*(p-a)
3、*(p-b)*(p-c)*0.5 return sS=area(L1,L2,L5)+area(L3,L4,L5)如某地块示意图如3.2.12所示,要想计算其面积,我们可以将此地块进行划分,然后利用海伦公式进行计算。自定义函数示例这就是递归!这就是递归!递归就是函数自身调用自身其形式是在函数定义有直接或间接调用自身。函数:是完成特定功能的一个语句组,通过函数名执行输入:参数输出:返回值斐波那契数列程序的实现 在印度,有这么一个古老的传说:开天辟地的神勃拉玛(和中国的盘古差不多的神)在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的
4、众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面拓展迁移-汉诺塔移动圆片的次数:18446744073709551615 算法设计定义函数hannoi(n,A,B,C)表示把A上的n个盘子移动到C上,其中可以用到Bdef hannoi(n,A,B,C):if n=1:print(move,n,from,A,to,C)else:hannoi(n-1,A,C,B)print(move,n,from,A,to,C)hannoi(n-1,B,A,C)n=int(input()print(hannoi(n,左,中,右)计算挪用时间 电影领域的递归-盗梦空间 课后练习def p(n):i=1 x=1 while(i=n):x=x*i i=i+1 return xn=int(input()print(p(n)求N!=1*2*3*4*5.*(N-1)*Ndef p(n):if n=1or n=0:return 1 else:return p(n-1)*nn=int(input()print(p(n)总结归纳 是完成特定功能的一个语句组,通过函数名执行 输入:参数 输出:返回值函数 自己调用自己 递归出口:也就是所描述问题的最简单情况,它本身不再使用递归的定义。递归关系:使问题向递归出口转化的规则。递归函数