zoukankan      html  css  js  c++  java
  • 求解递推数列的成套方法

    例子

    • 求解 (sumlimits_{i = 1} ^ n i ^ 2)

    设它的递推式为

    [R_0 = alpha ]

    [R_n = R_{n - 1}+delta n^2 + gamma n + eta ]

    已知 (alpha = eta = gamma = 0, delta = 1) 时,(R_n=sum_{i = 1}^n i^2)

    因为递推式只与参数 (alpha, eta, gamma, delta) 相关,可以得出

    [R_n = A(n) alpha + B(n) eta + C(n) gamma + D(n) delta ]

    那么任意符合上面这个递推式的都可以用这个一般形式得出,强调一下,无论 (alpha,eta,gamma,delta) 取什么,(A(n),B(n),C(n),D(n)) 都是不变的

    这启发我们用一些简单的函数来求解 (A(n), B(n), C(n), D(n))

    带入函数1

    • 对于 (f(n) = 1)

    [f_0 = 1 o alpha = 1 ]

    [1 = 1 + delta n^2 + gamma n + eta o delta = gamma = eta = 0 ]

    得出一个关系式

    [1 = A(n) ]

    带入函数2

    • 对于 (f(n) = n)

    [f_0 = 0 o alpha = 0 ]

    [n = n - 1 + delta n^2 + gamma n + eta o delta = gamma = 0, eta = 1 ]

    又一个关系式

    [n = B(n) ]

    带入函数3

    • 对于 (f(n) = n^2)

    [f_0 = 0 o alpha = 0 ]

    [n^2=(n-1)^2 + gamma n + eta + delta n^2 o delta = 0, eta = -1, gamma = 2 ]

    [n^2 = -B(x) + 2C(n) ]

    跟上面的式子联立,可以解出 (C(n) = frac{n^2 + n} 2)

    带入函数4

    • 对于 (f(n) = n^3)

    [f_0 = 0 o alpha = 0 ]

    [n^3=(n-1)^3 + gamma n + eta + delta n^2 o delta = 3, eta = 1, gamma = -3 ]

    可以解出

    [D(n) = n(n + frac 1 2) (n + 1) ]

    这个式子是不是有些眼熟,对,它就是平方和公式,只要把 (delta) 设为 1,就可以发现 (D(n) = sum_{i = 1} ^ n i^2),一开始设它的目的也是这个

    一般情况

    从上面的例子可以看出,对已一个递推公式来说,最终的封闭形式只与项数 (n),和其中的变量有关

    因此我们可以设出封闭形式,并带入简单函数进行求解

    需要注意的是,设出的函数必须可解,当带入一个简单函数无法通过 (delta,eta...) 来得到递推式时,要么考虑换一个函数,要么增加一个变量

    这就需要通过做题来增加数学经验了

  • 相关阅读:
    2 3 5 7的倍数
    三角形面积
    数塔取数问题
    拼成最小的数
    JMeter使用总结
    jmeter+ant生成报告(ubuntu环境)
    LINUX常用命令,不定时更新
    oracle语句使用总结
    "the import org.junit can not be resolved"解决办法
    [SWPUCTF 2018]SimplePHP
  • 原文地址:https://www.cnblogs.com/XiaoVsun/p/13063570.html
Copyright © 2011-2022 走看看