【问题标题】:How to solve the recurrence relation T(n)=T(n/3)+T(n/6)+1如何求解递归关系 T(n)=T(n/3)+T(n/6)+1
【发布时间】:2021-03-18 10:34:29
【问题描述】:

我一直在尝试求解下一个递归关系T(n)=T(n/3)+T(n/6)+1

我不知道从哪里开始。想过先画个递归树再求解,不知道对不对。

有人可以帮我解决这个问题吗?谢谢

【问题讨论】:

    标签: algorithm complexity-theory


    【解决方案1】:

    您可以使用Akra-Bazzi method,它是主定理的推广,用于解决具有不同大小的子问题的分而治之的递归。它适用于形式的重复:

    对于正常数 a,常数 b 在 (0,1),g(n) 在 O(n^c) 和 h(n) 在 O(n/log^2(n))。

    在这种情况下:

    按照这个方法,我们需要这样的 p 值:

    求解这个方程得到 p=0.48954...

    Akra-Bazzi 定理说算法的复杂度是:

    在给定 g(u) = 1 的情况下求解:

    【讨论】:

    • 拆分部分并单独解决它们不是有效的方法,并且会在此处产生错误的结果。该方法存在缺陷的一个示例:您无法通过编写 T(n) = T(n/2) +T(n/2) 然后求解部分来求解 T(n) = 2T(n/2) . T(n) = 2T(n/2) 有解 T(n)=Theta(n),T(n) = T(n/2) 有解 T(n)=Theta(1)。
    • @PaulHankin 是的,你是对的,我的错
    • 新答案很棒!
    猜你喜欢
    • 2017-12-22
    • 2019-04-15
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2016-03-12
    • 1970-01-01
    相关资源
    最近更新 更多