繁体   English   中英

主定理 f(n) = cn^k

[英]Master theorem where f(n) = cn^k

我想知道当 f(n) = xn k和 n^(log b a) = n k时出现的主定理的特定情况,其中 x 是大于 1 的 integer。对于这种情况,f(n) 是大于 n^(log b a) 但它不是多项式大于它,因此不会出现情况 3。

对于这样的案例,我假设您使用案例 2,因为它们的大 O 是相同的,但这似乎不符合我能找到的等式。 似乎我在将 f(n) 直接从原始递归关系中取出而不是大 O 时犯了一个错误,因为这对我来说似乎很有意义,但我找不到任何关于这个或任何例子的澄清其中方程中 f(n) 的空间还不是它自己的大 O。

编辑:当我说“我能找到的方程”时,我的意思是假设不符合主定理,因为我可以解决它。 因为我有它,我正在谈论的案例 2 的主定理看起来像f(n) = Θ(n^(log b a)) 我认为重要的一点是,是否从以 + xn k结尾的等式中提取 f(n) = xn k或 f(n) = n k 为糟糕的措辞道歉。

我认为真正重要的是,我是否从以 + xnk 结尾的等式中提取 f(n) = xnk 或 f(n) = nk。

通常你应该采取 f(n) = x * n k 因为主定理将 T(n) 定义为 aT(n/b) + f(n)的形式。 但在你的例子中,这并不重要。

如果 x 是一个正常数,f(n) 和 x * f(n) 的增长是相同的。 在 f(n) = xn k的情况下,它们都是 Θ(n k )。 (或者你可以说它们都是 Θ(x * n k )。这与 Θ(n k ) 的集合相同。)

由于 f(n) = Θ(n log b a ),这里应该使用主定理的情况 2。 在这种情况下,定理说 T(n) = Θ(n log b a * lgn)。

同样,如果你写Θ(n log b a * lgn)Θ(5 * n log b a * lgn)Θ(x * n log b a * lgn)在这里也没关系。 将 function 与正常数相乘不会改变其渐近界。 主定理只给你 function 的渐近界限,而不是它的确切值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM