我的课程中有一个测验,其中有一个问题:“我们发现f(n)= 7n ^ 2 + 3n + 8。这意味着函数是O(???)且c = ???和n0 = ???”
我知道O(n ^ 2),但是我搜索了所有可以想到的源,以找出如何计算c和n0。在这里的某些线程中,我认为您可以为n0选择一个值,然后使用给定的n0值来计算c,但是我假设我的问题需要c和n0的特定(即正确)值,因为似乎只有一个正确的答案在测验中的问题。
答案 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
我也相信永远不可能有一个解决方案。