在Big Oh中找到值

我正在经历here中的渐近符号。我正在阅读此f(n) ≤ c g(n)

例如,如果f(n)= 2n + 2,我们可以通过调整f(n) is O (c.g(n))n的值以任何方式满足c的要求。或者是否存在用于选择cn的值的特定规则或公式。不会总是1吗?

naomibest 回答:在Big Oh中找到值

本身没有公式。您可以在此处找到正式定义:

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)。

enter image description here

我从您的问题中了解到的是,您没有获得big-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),依此类推。都是因为ckg(n) = n^2存在g(n) = n^3g(n) = n^4的对应值。

希望有帮助。

本文链接:https://www.f2er.com/3142042.html

大家都在问