寻找函数的上限

问题描述

示例3找出f(n)= n ^ 4 + 100n ^ 2 + 50的上限

解决方案:对于所有n≥11,n ^ 4 + 100n ^ 2 + 50≤2n ^ 4 ∴n ^ 4 + 100n ^ 2 + 50 = O(n ^ 4),c = 2并且n0 = 11

在上述问题中,解决方显示n> 11,n-nought为11。 有人可以解释为什么是11吗? 供参考-这是Narasimha Karumanchi简化的数据结构和算法中的问题

解决方法

对于所有n>11,它并未说n4 + 100n2 + 50 ≤ 2n4,而是说n ≥ 11

是真的吗?您可以在公式中用n代替11,然后自己检查。

11是如何获得的?通过解决不平等问题。

,

它没有找到函数的上限。它是具有big-O表示法的函数的渐近分析。因此,常数c = 11对于分析而言并不重要,并且如果您可以证明不平等对于所有大于任何常数(例如n)的c = 100是有效的,则将被接受。顺便说一下,您可以通过数学归纳法证明所有n > 11都是正确的。

,

f(n) = n^4 + 100n^2 + 50

直觉上,n^4增长很快; n^2的增长速度不及n^450根本没有增长。

然而,对于较小的nn^4 < 50;此外,n^2项前面有系数100。由于这个因素,对于n的较小值,n ^ 4

但是由于我们的直觉是n^4n^2的增长快得多,因此我们希望100 n^2 + 50 < n^4足够n的时候。

为了主张和证明这一主张,我们需要更精确地理解“足够大”的含义。您的教科书找到了确切的价值;他们声称:n≥11,100 n^2 + 50 < n^4

他们是如何发现的?也许他们解决了n的不等式。或者,也许他们只是通过注意到以下方式来进行直观操作:

100 n^2 = 10 * 10 * n * n`
    n^4 =  n * n  * n * n

一旦n大于10,n^4就将成为两者中的较大者。

结论:只要n≥11,f(n) < 2 n^4。因此,f(n)满足f(n) = O(n^4)的教科书定义。