我正在阅读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
。这表明了什么。请在这里帮助我理解概念。
答案 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).