admin 管理员组文章数量: 1087135
2024年3月18日发(作者:java为什么不能运行)
椎冁l lul " _ 一
案例剖析
。
●_-I,●
递归算法案例
数列到函数
◎朱冰桂改花 (广东科学技术职业学院519090)
【摘要】递归算法是一种直接或者间接地调用自身的算
一
法.在计算机编写程序中,递92-算法对解决一大类问题是十
般的递归函数可以用如下形式表达:{【
U +1=,(n,n ).
分有效的,它往往使算法的描述简洁而且易于理解.递归过
递归函数有两个要素:初始项、递推式.
程一般通过函数或子过程来实现.递92-算法:在函数或子过
与递归函数类似的说法,还有:
程的内部,直接或者间接地调用自己的算法.本文通过具体 递归调用:在函数内部发出调用自身的操作.
的数学例子来体现这一基本思想,对第二个例子进行拓展,
递归方法:通过函数或过程调用自身将问题转换为本
揭示了递推关系数列的函数实质.
质相同但规模较小的子问题的方法.
【关键词】递归;递归算法;函数;数列
递归算法:直接或者间接地调用自身的算法.
二、递归算法的基本思想
递归函数(recursive function)是一个自己调用自己的函
递归方法实际上体现了“以此类推”、“用同样的步骤重
数.递归函数包括两种:直接递归(direct recursion)和间接递
复”这样的思想,是算法和程序设计中的一种重要技术.
归(indirect recursion).直接递归是指函数F的代码中直接
三、递归算法举例
包含了调用F的语句,而间接递归是指函数F调用了函数
侈4 1 已知S(n)=1+2+3+-・・+n=s(n一1)+n,当
G,G又调用了日,如此进行下去,直到F又被调用.
我们去求s(n)时,我们是先求出s(n一1),然后再算出
还有些数据结构如二叉树,结构本身固有递归特性;此
s( ),具体语句为:s(n)=s(n一1)+n.
外,有一类问题,其本身没有明显的递归结构,但用递归程
在这个语句中,我们调用s(n)求其值的时候,必须先调
序求解比其他方法更容易编写程序,如八皇后问题、汉诺塔
用s(n一1)得到其值,而要得到s(n一1),又必须调用s(n一
问题等.
2)得到其值,同样,要求 (n一2)又要调用 (n一3),依次类
递归时常用的编程技术,其基本思想就是“自己调用自
推,一直要递推到s(2)=s(1)+2,由于s(1)已知为1,所以
己”,一个使用递归技术的方法即是直接或间接地调用自身
可以得到s(2),从而得到s(3),这样一直可以得到s(n).
的方法.递归方法实际上体现了“以此类推”“用同样的步骤
这个递归算法中,自身调用的语句是:s(n)=s(n一1)+
重复”这样的思想,它可以用简单的程序来解决某些复杂的
n,结束递归的边界条件是:s(1)=1.
计算问题,但是运算量较大.正因为递归程序的普遍性,我
例2数列,(n)满足_厂(n+1)=,/2+,(n)及八1)=2,
们应该学会使用递归来求解问题.在直接递归程序与间接
求这个数列的前五项.
递归中都要实现当前层调用下一层时的参数传递,取得下
解 在递推公式I厂(n+1)= : 中,令n=1,可
一
层所返回的结果,并向上一层调用返回当前层的结果.至
得_厂(2)= +,(1)= 2+2=2.
于各层调用中现场的保存与恢复,均由程序自动实现,不需
再令n=2,3,4,5,
要人工干预.因此,在递归程序的设计中关键是找出调用所
需要的参数、返回的结果及递归调用结束的条件.如在阶乘
可得,(5)=/(4)= 3)=v/2+_厂(2)=v/2+2=2.
因此这个数列的前五项都是2.
函数Fact(n)中,各层要求传递一个自然数 ,返回n Fact
注容易看出这个数列的各项都是2,即2,2,2,2,2,2,…
(n一1),递归调用结束的条件是n=0,据此,可以方便地写
如果我们令厂(1)=1,则可以求出该数列的前五项分
出它的对应程序
别为:
一
、
递归的基本思想
在中学学习数列知道,数列有用通项公式定义也有用
2)= 2+ 1)=√3,
~
r—————=
递推式定义.
_厂(3)= 2+,(2)=√2+√3,
女Ⅱa =2 ;ao u J=1,U2=2, >2时,U a 一】+u 一2.
r————— ======
{L4、= 压丽= 2+ 2 .
同样的,表示函数可以用显式表达式、隐式方程、参数
厂— 三三
方程形式和递归式.
/(5)= 2+,(4)=√2+√2+ ̄/2+√3.
所谓递归就是自己调用自己,递归包含两种:直接递归
可见,递归函数除了和相应的递推式有关外,不同的开
和间接递归.
始项,也会使结果有很大不同.
递归函数:用函数自身给出定义的函数,称为递归
在上例中,如果我们修改递推式,改为f(n+1)=
函数.
 ̄/y+_厂(n),且令f(1)=3,则当Y=6时,我们可以得到
数学学习与研究2012.7
辑 l
乏
案例剖析
一…
|lll| 灌 奄
列,即当Y= ( 一1)时,数列为常数列.数列是自变量为自
然数的函数这一思想得到体现.
.1 - h臻
_厂(5)=/<4)= 3)=_厂(2)=、 丽
都是3.
=3,即数列的每--项
如果令f(1)=4,则当Y=12时,我们可以得到f(5)=
_厂(4)= 3)= 2): -4,即数列的每一项都是4.
如果我们把递推式改为,(n+1)=
的常数列.
而且令
_厂(1)= ,我们可以得到当Y= ( —I)时,数列是值为
如果令l厂(1)=5,则当Y=20时,我们可以得到f(5)=
4)=_厂(3)=_厂(2)= 而=5,即数列的每一项都是5
综上所述,我们可以得到递归思想最终还是一种函数
的思想,只不过在中学阶段接触到的是一些具体的数列例
对以上各种情况我们列个表格,并设_厂(1)= .
l厂(1)
2 2 2
子,让同学们感到很是新鲜好奇.而在高等数学阶段,特别
_厂(2)
2
,(3)
2
,(4)
2
厂_(5)
2
是对于计算机专业的学生,掌握递归思想意义重大,可以帮
助他们创新,建立新模型,如果把数学中的函数思想很好地
融人进去,可以拓展同学们的思路,降低问题的难度.
3
4
5
6
6
12
20
30
3
4
5
6
3
4
5
6
3
4
5
6
3
4
5
6
3
4
5
6
【参考文献】
王信峰.计算机数学基础.北京:高等教育出版
社。2009.
可以发现当 ,Y满足一定的关系时,所得数列是常数
(上接60页)
三、解决问题的过程中。培养学生的互译能力
设 = ,为 上的单位向量, = 为 上的
1.运用典型例题分析,培养学生熟练地表述的能力
对于抽象的数学符号、图形语言,我们在理解的深度与
广度上很难与数学文字语言相媲美.故我们在解决数学问
题时,通常会将符号及图形语言转译成文字语言.这样的例
单位向量,则 IA BI+ 缶的方向为 BAc的角平分线 的
施又 oI+ .A( + )的方向与 +
子也很多,下面任举一例阐述具体做法:
例2 已知{n }是递增数列,且对任意 ∈N 都有
n =n +An恒成立,求实数A的取值范围.
的方向相同_而 一一OA: :A( + )
= +A( + ),.・.点P在 上移动.
’
..
解析由{n }是递增数列(文字语言),得口 <n +。(符
号语言)恒成立.
即n +an<(n+1) +A(n+1).
’
..
P点的轨迹一定通过AABC的内心.
思路 将向量语言翻译成图形语言及文字语言即町得
答案.
对任意n∈N 都有A>一(2n+1)恒成立.
若设 /'t)=一(2rt+1),n∈N ,
即只需A>厂(n) ,n∈N .
’
.
’
这样的例题不胜枚举.总而言之,当遇到数学问题时,
如能注重自然语言与算法语言的转译,注重文字、图形、符
号等语言之间的相互转译,然后再对题目进行针对性的分
析,则难题不难矣!
2It+1≥3.
-
.
.
(2n十1)≤一3,故函数_厂(n)…=_厂(1)=一3.
‘
..
A>一3.
如果教学过程中长期注重使用这种教学理念与教学方
用分离变量法将恒成立问题转化成求函数
法,也就很自然地教会了学生对待数学问题的~种思考厅
式和解题习惯,当学生们面对一个较为复杂的问题时他们
就会很自觉地多问自己几个为什么.那么每~・个小条件都
可能有几个不同的理解与转译方式,再根据乘法原理,就会
得到几十种的处理方案,可见再难的数学题也不难被攻克.
这里还有一个问题值得关注:虽然条条道路通罗马,但是其
中总有一条或几条是捷径.如何快速检索出最佳转译方案,
这就要求学生在处理问题后要有反思的习惯;要有不断地
反思积累
的最值问题.即“当 ∈D( )时,对于任意的 都有m>_厂( )
(或m<f( ))恒成立”可转译为“m>f( )…(或m<
.
厂( ) ),其[}I ∈D( )”,再根据条件构造合适的函数,是
处理这一类问题的常用转译方法.
2.面对较难数学问题时,合理地将解题步骤分解,有助
f学 三种语占转泽能力的培养
例3 0是平面上一定点,A,B,C是平面上不共线的三
点,动点P满足 = +^( + )’A∈Lo'+
则P点的轨迹一定通过AABC的内心.(填“外心…‘内心”
“重心”“垂心”之一)
积累好思路、好方法、好技巧的习惯;要有对自己已经得到
的知识技能进行恰当的资源管理的习惯,进而形成自己的
资料库.这样,如果遇到问题时就有了“一类题”或“触类旁
通”的感觉,处理起来才会快捷,得心应手.
数学学习与研究2012 7
解析 它的解题思想主要还是对向量语言的转译.
版权声明:本文标题:递归算法案例——数列到函数 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1710750514a571270.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论