如何求解递归 T(n) = 2T(n^(1/2)) + log n? [关闭]

Posted

技术标签:

【中文标题】如何求解递归 T(n) = 2T(n^(1/2)) + log n? [关闭]【英文标题】:T(n)=2T(n−−√)+logn [closed] 【发布时间】:2012-10-17 17:19:04 【问题描述】:

我正在尝试找出重复的时间复杂度:

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

我非常接近解决方案,但是遇到了障碍。我需要解决:

n(1/2k) = 1

for k 来简化我的替换模式。我不是在寻找复发的答案,只是k 的解决方案。

【问题讨论】:

我认为这不会有帮助。如果你为k 解决了这个问题,你会得到一些非常可怕的东西。 我投票结束这个问题,因为它是一个数学问题,而不是一个编程问题。 Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Mathematics Stack Exchange 会是一个更好的提问地点。 【参考方案1】:

老兄,如果它是等式的快速排序:

解决方案是O(n*log(n)),因为对于某些N,现在它甚至更小(T(n) ~ n^1/2),这意味着您的复杂性低于O(n*log(n))

尝试使用归纳法来证明你的界限

【讨论】:

是的,我同意,因为合并是次线性的,并且输入大小也小得多。然而,如果一切都失败了,我会尝试归纳,但我只是很好奇我如何解决形式为 c^a^b = 1 的方程。我知道这涉及到一些使用权力身份的诡计。【参考方案2】:

以 1 为底的任何值都是 0。

所以

n^((1/2)^k) = 1

log(n)(n^((1/2)^k)) = log(n)(1)

1/2^k = 0

log(1/2)((1/2)^k) = log(1/2)(0)

以 0 为基数的任何值都是负无穷大......所以......

k = -无穷大。

我认为你应该为 n 使用不同的“最终数字”,而不是 1 只是说...

【讨论】:

主要是因为在 1 之前你永远无法继续平方根。你会发疯的。【参考方案3】:

无法解决

n(1/2k) = 1

对于 k,因为如果 n > 1,那么对于任何非零 x,nx > 1。解决这个问题的唯一方法是选择 k 使得 1 / 2k = 0,但这是不可能的。

但是,您可以解决这个问题:

n(1/2k) = 2

首先,取双方的日志:

(1 / 2k) lg n = lg 2 = 1

接下来,两边都乘以 2k

lg n = 2k

最后,再记录一次:

lg lg n = k

因此,一旦 k = lg lg n,此循环将停止。

虽然您只询问了 k 的值,但自从您询问以来已经整整一年了,我想我想指出您可以通过变量替换来解决这个问题。尝试设置 k = 2n。那么k = lg n,所以你的循环是

T(k) = 2T(k / 2) + k

这解决了(使用主定理)T(k) = Θ(k log k),并且使用 k = lg n 这一事实,整体递归求解为 Θ(log n log log n)。

希望这会有所帮助!

【讨论】:

先生,我可以这样解决吗 -:T(n) = 2T(n1/2) + log n =>T(2^m)=2T(2^(m/2) )+log 2^m =>T(2^m)=2T(2^(m/2))+m=>让 2^m=k=>S(k)=2S(k/2)+log k 关闭!如果你插入 k = 2^n,当你将 log n 项表示为 k 的函数时会发生什么?【参考方案4】:

当您开始展开递归时,您会得到:


这里是同样的事情,但需要几个额外的步骤:

现在使用边界条件进行递归(数字 2 选为 0 和 1 没有意义),你会得到:

k 代入你将得到的等式:

这里有几个使用相同想法的递归。

T(n) = T(n^1/2) + 1 T(n) = T(n^1/2) + O(loglog(n))

【讨论】:

先生,在这里查看我的方法i.stack.imgur.com/C2uiq.png,请帮助我继续前进。谢谢:) @laura 我认为我的解决方案没有问题。我添加了一些中间步骤。 是的,你是对的。非常感谢!

以上是关于如何求解递归 T(n) = 2T(n^(1/2)) + log n? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

求解递归:T(n)=2T(n/2)+n/logn

求解 T(n) = 2T(n/2) + log n [关闭]

如何解决以下复发?

求解递归关系T(n)= T(n-1)+ n

用 log n 求解主定理:T(n) = 2T(n/4) + log n

递归关系:求解 T(n-1) 的大 O