资源简介 (共20张PPT)4.3非数值计算第二课时循环结构:计算机程序周而复始地重复同样的步骤,称为循环。知识点回顾例如:For n in range(1,100):print(‘我爱你,中国’)例如:n=1while n<=100:print(‘我爱你,中国’)n=n+1自定义函数——可以复用的代码知识点回顾基本格式def 函数名(参数): #函数说明(函数实现功能)语句或语句组 # 空四格return 返回值Part 01任务驱动求解5!、10!、100!值为多少?5!的阶乘 1*2*3*4*5程序代码:s=1for i in range(1,6):s=s*iprint(s)请同学完善程序,运行程序能同时计算出5!、10!、100!值循环 复制粘贴,修改代码自定义函数策略0102调用 自定义函数新知新授Part 02比一比谁的速度快?6!阶乘值是多少?知识点分析,运用分支策略——分6!的值6*5!6*5*4!6*5*4*3!6*5*4*3*2!6*5*4*3*2*1!6*5*4*3*2*1*0!6*5*4*3*2*1*0*-1!……………知识点分析,运用分支策略——治6!的值6*5!6*5*4!6*5*4*3!6*5*4*3*2!6*5*4*3*2*1!6*5*4*3*2*1*0!6*5*4*3*2*1*0*-1!……………F(n)=1(n=1)n*f(n-1) (n>2)知识点分析,运用分支策略——合F(n)=1(n=1)n*f(n-1) (n>2)递归算法直接或间接地调用自身的方法称为递归。可以将递归简单类比为具有自相似性重复的事物。递归的基本思想递归的基本思想是把规模较大的问题层层转化为规模较小的同类问题求解。对递归而言,递推与回归,二者缺一不可。递归可用“分”,“治”,“合”三个字概括1)分:将原有问题分解成K个子问题。2)治:对这K个子问题分别求解。如果子问题的规模仍然不够小,则将其再分解为K个子问题,如此进 行下去,直到问题足够小时,就很容易求出子问题的解。3)合:将求出的小规模问题的解合并为一个更大规模问题的解,自下而上逐步求出原问题的解。新知新授Part 03体验经典小游戏——汉诺塔汉诺塔(Tower of Hanoi)源于印度传说中,大梵天创造世界时造了三根金钢石柱子,其中一根柱子自底向上叠着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。初始状态 第四步第一步 第五步第二步 第六步第三步 第七步重点难点解读递归可用“分”,“治”,“合”三个字概括2、汉诺塔的递归1)汉诺塔的递归过程:将N个木盘从A杆移动到C杆,需要借助中间的B杆,只要超过一个木盘,在移动过程中,总会存在起始杆、过渡杆及目标杆的问题。因此,定义函数时,用到了4个参数:haooi(n,s,m,t),n表示需要移动的盘子数量,S表示盘子的起始杆,m表示中间过渡杆,t表示目标杆。可用下图表示:编程如下:总结1. 理解递归思想。2. 理解递归算法。3. 迭代与递归的异同。作业思考:斐波那契数列能否用递归算法解决问题。感谢聆听 展开更多...... 收起↑ 资源列表 4.3非数值计算第二课时.ppt 4-3 汉诺塔游戏.swf