内容正文:
4.3 非数值计算
学习目标
1.运用合适的算法形成解决问题的方案
2.了解算法设计中的分治思想,并运用二分查找解决实际问题
3.体验递归的方法,并结合具体问题开展编程实践
教学重点
理解二分思想、递归思想,运用二分算法解决实际问题
教学难点
理解递归算法
第一课时 查找的策略
教学过程
教学内容
设计意图
猜数字比赛
运行Python编写的“猜数字”游戏,计算机在0~1000中随机产生一个数,试试看你要多少次才能猜中
玩猜数字游戏,激发学生兴趣
如何猜得又快又准
讲解二分查找思想:
二分查找又叫折半查找,将数列有序排列,采用跳跃式查找数据;以递增数列为例,先以中点位置的元素作为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分;每一次比较后都可以将查找区间缩小一半
了解二分思想
如何实现
1. 自然语言如何描述
2. 程序如何实现
从自然语言到程序设计语言过渡,降低难度
拓展
二分法解方程
已知x2-3x-18=0在[0,10]区间上有解,用二分法求出方程的解
令f(x)=x2-3x-18,针对有解区间(a,b),取x0=(a+b)/2:
若f(a)*f(x0)<0,则f(x)在(a,x0)内有解
若f(x0)*f(b)<0,则f(x)在(x0,b)内有解
若f(x0)<较小数,如10-6,则x0为方程的解
深入理解二分,会运用二分思想解决实际问题
总结
1. 二分查找的优缺点
2. 其他查找方法
总结归纳
习题
尝试用二分法求解x3-x2+x-1=0在区域[-5,5]区间上的解
练习巩固
第二课时 神奇的递归
教学过程
教学内容
设计意图
玩汉诺塔游戏
从网上下载Flash版本汉诺塔游戏或在线汉诺塔游戏,让学生体验
游戏导入,激发兴趣
分析玩的过程
从1个盘子开始,到2个盘子,到3个盘子,画出移动过程
由简到难,逐步分析
程序实现
总结移动规律,绘出示意图,并根据示意图完善程序
通过示意图辅助理解
讲解递归思想
讲解递归思想
递归是重复调用函数自身,递是描述问题,归是解决问题。
理解递归思想
探究深入
如何计算移动次数
在以上程序的基础上进行修改,统计汉诺塔游戏的移动次数
相传在印度的婆罗门神庙内插着三根钻石棒,创世之时,神便