首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对上界的更好猜测

对上界的更好猜测
EN

Stack Overflow用户
提问于 2013-01-07 11:31:04
回答 2查看 4K关注 0票数 5

这是“算法入门”中的一个问题,其数字为4.4-5,描述如下:

用递归树确定递推T(n) = T(n-1) + T(n/2) + n.Use的一个较好的渐近上界,替代法验证你的答案。

我发现很难计算递归树的递归。我给出的答案

Math.pow(2,n)

似乎太loose.Maybe,有一些更好的猜测existed.Thanks提供任何帮助。

EN

Stack Overflow用户

发布于 2013-01-10 13:41:39

递归关系似乎产生了一个次指数和超线性计算时间,这意味着任何选择的基都将作为一个上界工作,给定一个足够大的n

您选择的2^n是一个很好的答案,可能是他们在书中寻找的答案。这是一个简单的解决方案,即使对于非常小的n值也是有效的。(不过,我理解您为什么要问这个问题,因为即使对于中等大的T(n),它的增长也比n快得多。)

给定T(1) = 1 (或其他常量),递归方程给出n前几个值的运行时间如下。

代码语言:javascript
复制
T(1) = 1          n^1 = 2
T(2) = 4          n^2 = 4
T(3) = 11         n^3 = 8
T(4) = 19         n^4 = 16
T(5) = 35         n^5 = 32
T(6) = 52         n^6 = 64
T(7) = 78         n^7 = 128
T(8) = 105        n^8 = 256
T(9) = 149        n^9 = 512

我们可以看到,选择2^n作为上限对于所有值T(6)及以上都是有效的。

如果您想要一个比2^n更低的界限,您可以选择一个较低的基数(通过权衡,它只对较高数量的n有效)。但我必须补充一点,这基本上仍将是你已有的解决办法。

任何比一个大的基都可以,但是更具体一点,例如,我们可以看到递归方程T(n) = T(n-1) + T(n/2) + nn>5的方程T(n) = T(n-1) + T(n-2)所限制。

这是与Fibonacci序列相同的递归关系,按照this问题答案中的步骤,它具有一个计算复杂度,将黄金比率(1+sqrt(5))/2 = 1,618n的幂相匹配。

绘制我们可以看到的n的实际值,T(n)的值以((1+sqrt(5))/2)^n为界。从图中看,它似乎是值n=13及以上。

所有这一切,我已经考虑了一些关于用一些次指数函数来逼近运行时间。这似乎是不容易做到的,正如我说的,我相信你已经找到了预期的答案。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14195011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档