递推

递推

 递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。

递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。一般说来,可以将递推算法看成是一种特殊的迭代算法。

五种典型的递推关系

.Fibonacci数列

    Fx=Fx-1+Fx-2      边界条件:F0=0F1=1

.Hanoi塔问题

Fn=2^(n-1)+1       边界条件:h1=1

.平面分割问题

    Fn=Fn-1+2(n-1      边界条件是a1=1

.Catalan

     fn=hn= C2n,n/n+1= c2n,n-c2n,n+1)(n=012,……)。最后,令f0=1f1=1f(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)=0S2(n,1)=1S2(n,n)=1S2(n,k)=0(k>n)

【总结】:

  1. 首先,面对递推题的时候,大部分题目你是一时半会想不起来的,所以你就需要一种习惯,那就是视草稿纸是免费的,在草稿纸上挥动笔尖,记录流程,总结规律,得出算法。
  2. 务必证明算法的正确性,在此之前带有优化的暴搜是非常必要的
  3. 草稿纸需要有美感,对草稿纸需要进行严谨的分块,注意推论的逻辑性

感谢各位与信奥一本通的鼎力相助!

原文地址:https://www.cnblogs.com/SeanOcean/p/10975559.html