【问题标题】:Solving the recurrence T(n) = T(sqrt(n))+a求解递归 T(n) = T(sqrt(n))+a
【发布时间】:2017-12-22 12:14:47
【问题描述】:

您好,我正在尝试使用主定理求解以下方程:

T(n) = a ;对于 n

T(n) = T(√n) + a;否则

当我发现一个类似的方程式 (Solving the recurrence T(n) = 2T(sqrt(n))) 时,我想知道我的解决方案是否正确。我得到了 T(n) = O(log log n)。这对我上面的方程式是否正确?

【问题讨论】:

标签: algorithm recurrence master-theorem


【解决方案1】:

我们可以写下一个表格并寻找一个模式:

n        T(n)
-        ----
2        a
4        T(2)  + a = 2a
16       T(4)  + a = 3a
256      T(16) + a = 4a
...
2^(2^k)  (k+1)a

我们注意到2 = 2^(2^0)4 = 2^(2^1)16 = 2^(2^2) 等等;通过从 2 开始并一遍又一遍地平方,我们得到像 2^(2^k) 这样的术语,T(n) 的对应值只是 (k+1)a

鉴于n = 2^(2^k)T(n) = (k+1)a,我们可以根据n 求解k 的第一个方程,然后代入第二个方程。我们得到了log log n = kT(n) = (1 + log log n)a,它具有你所追求的渐近界。

从技术上讲,要完成这个论点,我们必须注意 T(n) 是一个单调非递减函数,因此对于 n 的这个特定值序列,我们已经证明该函数以这种方式有界就足够了.一般来说,一个函数的行为方式可能会导致上述分析方法被愚弄,从而暗示一个不准确的界限。对于表现良好的函数,这通常不会发生。

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 2014-12-06
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多