【问题标题】:Get time complexity of the recursion: T(n)=4T(n-1) - 3T(n-2)获取递归的时间复杂度:T(n)=4T(n-1) - 3T(n-2)
【发布时间】:2014-09-21 06:38:01
【问题描述】:

我有一个由以下给出的递归关系:

T(n)=4T(n-1) - 3T(n-2)

我该如何解决这个问题? 任何详细解释:

我尝试的是使用关系替换右侧的T(n-1),我得到了这个:

 =16T(n-2)-12T(n-3)-3T(n-2)

但我不知道在哪里以及如何结束。

【问题讨论】:

    标签: algorithm big-o time-complexity recurrence


    【解决方案1】:

    你不仅可以很容易地得到这个递归的时间复杂度,而且你甚至可以精确地解决它。这要归功于线性递推关系背后的详尽理论,您在这里调用的是homogeneous linear recurrence 的一个具体案例。

    要解决它,您需要编写一个特征多项式:t^2 -4t +3 并找到它的根,它们是 t=1t=3。这意味着您的解决方案是以下形式:

    T(n) = c1 + 3^n * c2.

    如果您有边界条件,您可以获得c1c2,但对于您的情况,声明O(3^n) 时间复杂度就足够了。

    【讨论】:

      【解决方案2】:

      虽然显然是O(4^n)(因为T(n)<=4*T(n-1)),但看起来可以证明一个更小的限制:

      T(n) = 4*T(n-1) - 3*T(n-2)

      T(n) - T(n-1) = 3*T(n-1) - 3*T(n-2)

      D(n) = T(n) - T(n-1)

      D(n) = 3*D(n-1)

      D(n) = D(0) * 3^n

      如果D(0)=0T(n)=const=O(1)

      否则,由于差异是指数的,因此结果函数也将是指数的:

      T(n) = O(3^n)

      【讨论】:

        【解决方案3】:

        注意:-一般来说,这些循环关系(循环函数调用的次数是重复的,例如-recurrence relation for a fibonacci sequence for value n)将导致指数时间复杂度。

        首先,您的问题不完整。它不提供终止条件(循环将终止的条件)。我认为它必须是

        T(n) = 1,n=1,2,n=2

        基于这个假设,我开始分解上面的递归关系

        将 T(n) 代入 T(n-1) 我得到了:

        16T(n-2) - 24T(n-3) + 9T(n-4)

        这形成了一个 2 次方的多项式

        {(4^2)T(n-2) - 2.4.3 T(n-3) + (3^2) T(n-4)}
        

        再次打破上述重复,我们得到:

        64T(n-3) -144T(n-4) + 108T(n-5) -27T(n-6)

        这是3次幂的多项式

        在分解 n-1 项的关系时,我们将得到:

        (4^n-1) T(1) - ............. 类似的东西

        我们可以清楚地看到,在上面的扩展中,所有剩余的项都将小于 4^n-1 因此,我们可以将渐近符号表示为:

        O(4^n)

        作为一个练习,您可以将多项式扩展为更多项,还可以绘制递归树以找出实际发生的情况。

        【讨论】:

          【解决方案4】:

          尝试 T(n) = x^n 会得到一个二次方程:x^2 = 4x - 3。这有解 x=1 和 x=3,所以 T(n) 的一般形式是 a + b *3^n。 a 和 b 的确切值取决于初始条件(例如,T(0) 和 T(1) 的值)。

          根据初始条件,解将是 O(1) 或 O(3^n)。

          【讨论】:

            猜你喜欢
            • 2013-07-16
            • 1970-01-01
            • 2020-02-14
            • 2021-05-05
            • 2013-09-19
            • 2015-08-04
            • 2016-04-04
            • 1970-01-01
            • 2016-04-23
            相关资源
            最近更新 更多