计算c和n0

时间:2018-07-14 17:01:35

标签: big-o

我的课程中有一个测验,其中有一个问题:“我们发现f(n)= 7n ^ 2 + 3n + 8。这意味着函数是O(???)且c = ???和n0 = ???”

我知道O(n ^ 2),但是我搜索了所有可以想到的源,以找出如何计算c和n0。在这里的某些线程中,我认为您可以为n0选择一个值,然后使用给定的n0值来计算c,但是我假设我的问题需要c和n0的特定(即正确)值,因为似乎只有一个正确的答案在测验中的问题。

1 个答案:

答案 0 :(得分:2)

Big-O表示某些函数不会超出常数倍(c)且n(n0)较大的简单函数。 我们都知道7n ^ 2 + 3n + 8是O(n ^ 2),因为对于大的n值,3n + 8无关紧要。所以我们需要c和n0使得

7n^2 + 3n + 8 <= cn^2  for all n >= n0

除以n ^ 2将得到:

7 + 3/n + 8/n^2 <= c for all n >=  n0

如果我们选择n0 = 1,我们将得到

7 + 3 + 8 <= c

所以我们可以将c = 18设置为n0 = 1,这可能是解决方案之一,

7n^2 + 3n + 8 <= 18n^2 for all n >= 1

我也相信永远不可能有一个解决方案。