• 递推


    递推

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

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

    五种典型的递推关系

    .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. 草稿纸需要有美感,对草稿纸需要进行严谨的分块,注意推论的逻辑性

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

  • 相关阅读:
    Golang gRPC 入门
    ProtoBuf编解码
    Proto3语法入门
    Golang RPC入门
    Windows用mstsc(远程桌面)远程Ubuntu 12.04时无法显示Ubuntu桌面解决办法
    ABAPSM30配置TCODE
    eclipselog4j.properties配置
    Hadoop—配置3个副本,但是实际只有1个副本。
    Hadoop—org.apache.hadoop.io.nativeio.NativeIO$Windows.access0
    Jmeter BeanShell使用场景
  • 原文地址:https://www.cnblogs.com/SeanOcean/p/10975559.html
Copyright © 2020-2023  润新知