gpt4 book ai didi

math - 求解递推关系 T(n) = √n T(√n) + n

转载 作者:行者123 更新时间:2023-12-02 00:40:03 28 4
gpt4 key购买 nike

是否可以解决递推关系

T(n) = √n T(√n) + n

使用主定理?它不是这样的形式

T(n) = a ⋅ T(n / b) + f(n)

但是这个问题是在 CLRS 第 4 章的练习中给出的。

最佳答案

这不能用主定理解决。不过可以使用递归树的方法来解决,解析为O(n log log n)。

这背后的直觉是注意到在树的每个级别,您都在做 n 项工作。顶层明确地工作。每个 √n 子问题都对 √n 项工作,总共完成 n 项工作,等等。所以现在的问题是递归树有多深。嗯,这是在 n 变得足够小(例如小于 2)之前可以对 n 求平方根的次数。如果我们写

n = 2lg n

然后在每次递归调用时 n 将取其平方根。这相当于将上述指数减半,因此经过 k 次迭代后我们得到

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

当这个值小于 2 时,我们想停止

2lg n/(2k) = 2

lg n/(2k) = 1

lg n = 2k

lg lg n = k

因此,在 lg lg n 次平方根迭代之后,递归停止。并且,由于在每个级别递归的工作时间为 O(n),因此总运行时间为 O(n lg lg n)。

更一般地说,就像任何反复将其输入大小减半的算法都会让您想到“log n”一样,任何通过取平方根反复减少其输入大小的算法都会让您想到“log log n”。 ”。例如,van Emde Boas 树就使用这种递归。

有趣的是,这种递归用于获取著名算法的运行时间,该算法用于确定性地解决最近点对问题,假设计算机可以在恒定时间内取任意实数的下限。

关于math - 求解递推关系 T(n) = √n T(√n) + n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7280224/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com