好方法学递归论文_王金萍

好方法学递归论文_王金萍

王金萍 山东省牟平第一中学 山东 烟台 264100

在《信息技术选修——算法与程序设计》中,学生普遍认为递归算法有一定的难度。对于递归的思想,其实从“从前有座山,山上有座庙”中学生已经有一点点了解,但把递归的思想运用到程序设计中,来解决一些问题,对于学生来说,还是有一定的难度的。但我想,只要采用合适的案例引入,让学生自己实践,通过讲解,可以把递归变得简单。

一、合适的案例引入,了解递归

在广东版的递归算法中,采用的案例引入是斐波那契的兔子问题引入的。我觉得这个案例可以用于第二个案例来讲解。我讲这节课时,是用递归计算n!作为引入案例。我是这样来分析这个问题的:

学生通过数学知识可知:

n!=n*(n-1)*(n-2)*……*3*2*1,

而(n-1)*(n-2)*……*3*2*1又可以写成(n-1)!,

所以n!又可以写成n!=1,当n=0时,

n!=n*(n-1)!,当n>0时。

期刊文章分类查询,尽在期刊图书馆

根据公式,可以将求n!的问题变成求(n-1)!的问题,因为当(n-1)!求出以后,再乘以n就是n!,而求(n-1)!的问题,又可以变成求(n-2)!的问题,求(n-2)!的问题又可以变成求(n-3)!的问题,如此继续,直到最后变成求0!的问题,而根据公式,0!=1,再反过来求出1!,2!,……(n-1)!,n!。

递归的思想是直接或间接地调用自身的算法,调用自身算法的目的是把一个比较大的问题,层层转化为一个与原问题相类似、规模较小的问题,即n的问题化成(n-1)的问题,一直化到递归的出口,即1的问题,从而得到原问题的解。

二、动手实践,亲自体会递归的调用

在讲汉诺塔的问题时,可以从网上找到汉诺塔的小游戏让学生来做,刚开始,可以试三个盘子,三个盘子成功后,可以试4个,这样不断地往上加。在玩这个小游戏的同时,学生能体会到,随着盘子不断地增加,移动的次数也不断地在增加。3个盘子时只需要移动7次就可以了,4个时,增加到15次,5个时31次,6个时是63次,7个127次,8个255次,9个511次等等,学生玩到5个左右时,基本上都会找到盘子的移动规律了,这样,更能加深理解递归的调用。

三、拓展延伸,深层分析算法,用递归来解决问题

学生掌握了递归的思想、算法和调用过程后,可以给学生提供一些需要分析问题,设计算法来解决的问题。

通过拓展延伸,让学生意识到,用递归可以解决很多复杂的问题但不需要很复杂的步骤。同时,也要向学生说明,并不是所有的问题都可以用递归来解决的。

论文作者:王金萍

论文发表刊物:《素质教育》2017年11月总第253期

论文发表时间:2017/12/19

标签:;  ;  ;  ;  ;  ;  ;  ;  

好方法学递归论文_王金萍
下载Doc文档

猜你喜欢