【问题标题】:Master theorem: issue when f(n) contains negative power of log主定理:当 f(n) 包含对数的负幂时的问题
【发布时间】:2017-02-20 08:22:22
【问题描述】:

所以我正在使用 Master 定理计算以下函数的平均案例复杂度:

T(n) = 2T (n/2)+ n/ log n

根据http://people.csail.mit.edu/thies/6.046-web/master.pdf问题7,

它说

不适用(f(n) 和 n 之间的非多项式差异 log b a

This answer 也支持pdf,说NO。

然而,this video 导师在 12:26 解决了同样的问题,他给出了答案

Θ(nloglogn) 

谁能解释一下错误以及为什么

【问题讨论】:

    标签: algorithm time-complexity master-theorem


    【解决方案1】:

    他们都是对的。 PDF 中的主定理不适用,但视频中的讲师正在使用涵盖您的案例的主定理的扩展形式。

    我在视频中找不到任何真正好的版本参考,也不是我学到的版本,但这里有一个在线证明:http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/extended_master_theorem.pdf

    【讨论】:

    • 查看了所有这些后,我想唯一的区别是负功率等于-1。如果它小于偶数 -1,它属于情况 1,因为它渐近小于 n ^ (log a base b)
    【解决方案2】:

    正如马特·蒂默曼斯(Matt Timmermans)正确指出的那样,该陈述并非源于主定理,而是源于其扩展版本。

    直接使用tree method解决这个问题很简单。

    T(n) = 2T (n/2)+ n / log n 开始

    • 0 级有 1 个节点,值为 n / log(n)

    • Level 1 有 2 个节点,每个节点的值 (n / 2) / log(n / 2)

    • ...

    • 级别 i2i 个节点,每个节点都有值 (n / 2i sup>) / log(n / 2i)

    简化,级别 i 贡献了 n / (log(n) - i)

    请注意,总共有 ~log(n) - 1 个级别才能达到一个常数。

    因此,所有级别的总和为i = 0~log(n) - 1[n / (log(n) - i) ] ~ n ∑i = 0k[1 / k],

    对于 k = log(n).

    请注意,sigma 是kth harmonic series, which is Θ(log(k))。设置 k = log(n) 总共给出 n Θ(log(log(n))) = Θ(n log(log(n)))

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 2017-06-12
      • 2018-04-05
      • 2013-03-22
      • 2011-07-03
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多