【问题标题】:When f(n) is negative, how does master theorem apply?当 f(n) 为负时,主定理如何应用?
【发布时间】:2017-02-03 06:56:16
【问题描述】:

试图解决这个递归:

T(n) = 4T(n/2) + 2500 - sqrt(n)
here a = 4, b=2 but my f(n) = 2500 -sqrt(n) 
n^ logb(a) = n ^ log2 (4) = n ^2 

但是 f(n) 是常数 -sqrt(n)

我的问题:

  1. 我可以假设 f(n) = Theta(sqrt n) 还是我应该知道一些技巧?

  2. 1234563或者可以忽略。

这快把我逼疯了!请帮忙!谢谢!!

【问题讨论】:

  • 说实话,我是第一次使用大师定理,这只是我试图解决这个问题以利用大师定理。如果 f(n) 是某个常数 - sqrt(n) 或者即使它是常数 -n,我的问题仍然存在;我们是考虑常数和减号还是干脆忽略常数?

标签: recursion divide-and-conquer master-theorem


【解决方案1】:

Master Theorem 有几个先决条件和案例要求。违反其中任何一项,则该定理或案例不适用。正如我所看到的,这种情况违反了 f(n) 为正的定理要求。

实际上,这表示一旦通过 2500^2 个节点,进程间通信开销为负:在计算完成之前收集和整理结果。

我强烈怀疑问题陈述中有错误。

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 2017-06-12
    • 2018-04-05
    • 2013-03-22
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    相关资源
    最近更新 更多