【问题标题】:Finding the values in Big Oh在 Big Oh 中查找值
【发布时间】:2019-11-07 19:38:06
【问题描述】:

我正在查看来自here 的渐近符号。我正在读这个f(n) ≤ c g(n)

例如,如果 f(n) = 2n + 2,我们可以通过调整nc 的值以任何方式满足它为f(n) is O (c.g(n))。或者是否有任何特定的规则或公式来选择cn 的值。 no 永远是 1 吗?

【问题讨论】:

  • 它在 n 的最高次数的 O 中,因为在 n 的大值下其他所有内容都无关紧要,所以对于这个例子来说它是 O(n)。 C是任意常数,n是n的最高阶
  • 所以对于 2n + 2 1 for c 和 1 for n 可能会错误,但如果我选择 3 as cn=2 那么这个 f(n) 是O(c.g(n))
  • 您在定义中缺少一个常量。 f(n) <= cg(n) 不必为所有n 保留,而是为所有n >= n0 保留一些固定的n0。你可以选择cn0
  • 是的,但是有什么公式可以选择c和n0吗?或者我可以随机输入任何值并满足方程

标签: algorithm optimization time-complexity big-o complexity-theory


【解决方案1】:

本身没有公式。你可以在这里找到正式的定义:

f(n) = O(g(n)) means there are positive constants c and k, such that 0 ≤ f(n) ≤ cg(n) for all n ≥ k. The values of c and k must be fixed for the function f and must not depend on n. (big-O notation)。

我从你的问题中了解到,你没有得到大 O 符号的本质。例如,如果您的复杂度是O(n^2),那么您可以保证存在某个n 值(大于k),之后f(n) 在任何情况下都不会超过c g(n)

让我们试着证明f(n) = 2n + 2O(n)

  1. 从函数本身看来,您不能将c 的值设置为等于2,因为您想找到f(n) ≤ c g(n)。如果插入c = 2,则必须找到k,这样f(n) ≤ c g(n) 就对应n ≥ k。显然,没有n 对应的2n ≥ 2n + 2。所以,我们转到c = 3
  2. 现在,让我们找出k 的值。所以,我们求解方程3n ≥ 2n + 2。解决它:

    3n ≥ 2n + 2 => 3n - 2n ≥ 2 => n ≥ 2

因此,对于c = 3,我们找到了k = 2 的值(n ≥ k)。

您还必须了解,您的功能不仅仅是O(n)。也是O(n^2), O(n^3), O(n^4)等等。因为g(n) = n^2g(n) = n^3g(n) = n^4存在ck的对应值。

希望对你有帮助。

【讨论】:

  • 谢谢。那么c的值是基于hit n trial的吗?就像我们会继续检查 3 然后 4 等等?以及我们如何知道它不应该是2。对于非常基本的问题,我很抱歉
  • @AHF,您通常取 c 的值,该值刚好大于多项式中最高次数的系数。对于f(n) = 2n + 2,最高度系数为2,所以取c = 2 + 1。再比如f(n) = 5n^2 + 2n + 2,最高度系数为5,所以取c = 6,这里是O(n ^ 2)
  • 如果是多项式怎么办?喜欢5n^4 + 3n^3+ 2n^2=4n+1?如果我们取 c=6 那么它将是 5n^4 + 3n^3+ 2n^2=4n+1 = 6n^4 ,但是对于 1 和 2 和 3 等等都是错误的
  • 我们取你原来的多项式:f(n) = 5n^4 + 3n^3 + 2n^2 - 4n - 1 ≤ c n^4=> 5 + (3 / n) + (2 / n^2) + (4 / n^3) - (1 / n^4) ≤ c-- (1) 对于n ≥ 15 + (3 / n) + (2 / n^2) + (4 / n^3) - (1 / n^4) 小于或等于13。 (将n = 1 放入5 + (3 / n) + (2 / n^2) + (4 / n^3) - (1 / n^4),你会得到5 + 3 + 2 + 4 - 1 = 13)。既然我们证明了5 + (3 / n) + (2 / n^2) + (4 / n^3) - (1 / n^4) ≤ 13 -- (2)。
  • 根据等式 (1) 和 (2),我们有 c = 13。我消除你的疑虑了吗? :)
猜你喜欢
  • 1970-01-01
  • 2019-02-15
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
相关资源
最近更新 更多