如何根据Θ找到{n ^ 3} {1000}-100n ^ 2-100n + 3并进行证明?

时间:2019-05-29 21:15:49

标签: algorithm

我正在阅读coreman的算法介绍,并在下面的练习中遇到了这个问题:

Express the function {n^3}{1000} - 100n^2 - 100n + 3 in terms of the Θ notation 

我没有任何计算机科学背景,因此尝试使用本书学习算法。看着上面的方程,我认为答案是O(n ^ 3)。

但是当我看到这篇文章时-How to find n^3/1000−100n2−100n+3 in terms of Θ and prove it?

上面帖子中的问题对使用f(n)和g(n)以及常数C1和C2等进行了一些解释,我无法理解OP如何尝试使用一些方程式对其进行求解。

此外,罗斯给出的答案是Now you have a positive bound on C1。这表明了什么。请在这里帮助我理解概念。

1 个答案:

答案 0 :(得分:0)

答案将是 Θ(n3)。

要系统地计算出来,最简单的方法是在 http://web.cs.wpi.edu/~guttman/cs2223/seven_rules.pdf 处使用 Big-O 和 Θ 的七项规则。 为原始表达式写e,重复应用规则(2)告诉我们 Θ(e) = Θ(max(n^3/1000 - 100n^2 - 100n + 3))

将规则 (1) 应用于其中的每一个,这将等于 Θ(max(n^3, n^2, n, 1))。

现在我们可以应用规则 (4) 看到 Θ(1) < Θ(n) < Θ(n^2) < Θ(n^3):

所以 Θ(max(n^3, n^2, n, 1)) = Θ(n^3).