【问题标题】:matrix exponentiation in linear recursion algorithm线性递归算法中的矩阵求幂
【发布时间】:2014-04-02 14:37:42
【问题描述】:

我正在尝试通过线性递归解决http://www.spoj.com/problems/FIBTWIST/ 问题。但是,由于约束很大,我必须使用矩阵求幂。 我已阅读http://zobayer.blogspot.in/2010/11/matrix-exponentiation.html 所以根据它形成的方程是

ft(n)=ft(n-1)+ft(n-2)+g(n)    ft(0)=0, ft(0)=1
g(n) =g(n-1)+1                g(1)=0

但是现在我很困惑如何形成 A*M=B 形式的矩阵 A 和 B。它在提到的 blogspot 链接中作为 Type 7 给出,但我很难理解它。

【问题讨论】:

    标签: algorithm recursion matrix


    【解决方案1】:

    定义第三个序列,fut,Fibonacci-untwist,为

    fut(n)=ft(n)+(n+2)。

    然后

    fut(n)=ft(n)+n+1=ft(n-1)+ft(n-2)+(n-1)+(n+2)=fut(n-2)+未来(n-1)

    所以 fut 只是斐波那契递归的另一种解决方案,因此

    fut(n)=f(n-1)*fut(0)+f(n)*fut(1)=2*f(n-1)+4*f(n)=2*f( n)+2*f(n+1)=2*f(n+2)

    最后

    ft(n)=2*f(n+2)-(n+2)

    测试:

        f(n):   0  1  1  2  3  5  8 13 21 34
    2*f(n+2):   2  4  6 10 16 26 42 68
         n+2:   2  3  4  5  6  7  8  9
       ft(n):   0  1  2  5 10 19 34 59
    

    真的,最后一行是第二行和第三行的区别。

    【讨论】:

    • 我无法理解你是如何得到这个方程 fut(n)=f(n-1)*fut(0)+f(n)*fut(1) 的。而且不应该是fut(n)=ft(n)+n+1。
    • f(n-1) 和 f(n) 构成了斐波那契递归解空间的基础。不,这个常数是正确的。
    • 我仍然没有得到 f(n-1) 和 f(n-2) 的部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 2013-01-24
    • 2017-10-05
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多