递推
递推
递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。
递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。一般说来,可以将递推算法看成是一种特殊的迭代算法。
五种典型的递推关系
Ⅰ.Fibonacci数列
Fx=Fx-1+Fx-2 边界条件:F0=0,F1=1
Ⅱ.Hanoi塔问题
Fn=2^(n-1)+1 边界条件:h1=1
Ⅲ.平面分割问题
Fn=Fn-1+2(n-1 边界条件是a1=1
Ⅳ.Catalan数
f(n)=h(n)= C(2n,n)/(n+1)= c(2n,n)-c(2n,n+1)(n=0,1,2,……)。最后,令f(0)=1,f(1)=1。f(n)=C(2n,n)-C(2n,n+1) ,h(n)=h(n-1)*(4*n-2)/h(n-1) , h(n)=C(2n,n)/(n+1);
Ⅴ.第二类Stirling数
S2(n,m)=mS2(n-1,m)+S2(n-1,m-1) (n>1,m1)
S2(n,0)=0;S2(n,1)=1;S2(n,n)=1;S2(n,k)=0(k>n)。
【总结】:
- 首先,面对递推题的时候,大部分题目你是一时半会想不起来的,所以你就需要一种习惯,那就是视草稿纸是免费的,在草稿纸上挥动笔尖,记录流程,总结规律,得出算法。
- 务必证明算法的正确性,在此之前带有优化的暴搜是非常必要的
- 草稿纸需要有美感,对草稿纸需要进行严谨的分块,注意推论的逻辑性
感谢各位与信奥一本通的鼎力相助!