递归公式(recursion formula),指当递推式中只含数列中的项,而无常数项或其它项。递归程序设计的公式化方法是一种简单而有效的设计思想,它把程序设计和程序理解的难点都集中到递归公式上。由递归公式设计出的程序具有标准的分支结构,编写和理解都要简单的多。
递归
程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
递归,就是在运行的过程中调用自己。
构成递归需具备的条件:
1,子问题须与原始问题为同样的事,且更为简单;
2,不能无限制地调用本身,须有个出口,化简为非递归状况处理。
在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象或方法,并规定其他所有情况都能被还原为其基本情况。
递推公式
如果数列{an}的第n项与它前一项或几项的关系可以用一个式子来表示,那么这个公式叫做这个数列的递推公式。
由递推公式写出数列的方法:
1,根据递推公式写出数列的前几项,依次代入计算即可
2,若知道的是末项,通常将所给公式整理成用后面的项表示前面的项的形式。
递归公式简介
递归公式属于递推公式,这样一个数列可以有三种给出的方法。
例如自然数列用通项公式表示为:;
用递推公式表示为:,初始条件为a1=1;
用递归公式表示为:,初始条件,a1=1,a2=2;
线性递归公式:递归公式的各项的次数均为一次时,便称为线性递归公式。用连续k项的表达式来表示紧接的后一项的线性递归公式叫做k阶线性递归公式,其一般形式如下:。
在程序设计的应用
递归程序处理的问题是程序设计中经常遇到的问题,这类问题通常可以分为两类:第一类是数学上的递归函数,要求算得一个函数值,例如阶乘函数和勒让德多项式函数;第二类问题具有递归特征,目的是求出满足某种条件的操作序列,例如汉诺塔问题和八皇后问题。第一类问题的程序设计是简单的、机械的,而第二类问题则不然,由于涉及面广,没有统一的规则可循,所以编程过程往往比较复杂,而且编得的程序不大好理解。究其原因在于,第一类问题已经有了现成的函数公式,第二类则没有。如果对第二类问题也能写出它的递归公式,那么编码过程就会大大简化,而且还可以改善程序的可读。
递归程序设计的公式化方法是一种简单而有效的设计思想,它把程序设计和程序理解的难点都集中到递归公式上。陆登波通过举例证明这种思想能够简化程序设计,而且得到的程序显然好于通常的程序。这种思想有普遍性,适用于多数递归程序的设计。由递归公式设计出的程序具有标准的分支结构,编写和理解都要简单的多。