gpt4 book ai didi

algorithm - 递归的复杂度 : T(n) = T(n-1) + T(n-2) + C

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:38:47 28 4
gpt4 key购买 nike

我想了解如何得出以下递推关系的复杂性。

T(n) = T(n-1) + T(n-2) + C给定 T(1) = CT(2) = 2C;

通常对于像 T(n) = 2T(n/2) + C 这样的方程(给定 T(1) = C),我使用以下方法。

T(n) = 2T(n/2) + C
=> T(n) = 4T(n/4) + 3C
=> T(n) = 8T(n/8) + 7C
=> ...
=> T(n) = 2^k T (n/2^k) + (2^k - 1) c

现在 n/2^k = 1 => K = log (n)(以 2 为底)

T(n) = n T(1) + (n-1)C
= (2n -1) C
= O(n)

但是,对于我遇到的问题,我无法想出类似的方法。如果我的方法不正确,请纠正我。

最佳答案

复杂度与输入大小有关,其中每个调用都会产生调用的二叉树

其中 T(n) 总共调用了 2n ..

T(n) = T(n-1) + T(n-2) + C

T(n) = O(2n-1) + O(2 n-2) + O(1)

O(2n)

以同样的方式,您可以将递归函数概括为斐波那契数

T(n) = F(n) + ( C * 2n)

接下来可以用直接公式代替递归的方式

使用称为 Binet's Formula 的复杂方法

关于algorithm - 递归的复杂度 : T(n) = T(n-1) + T(n-2) + C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17714365/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com