如何解决寻找函数的上限
示例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^4
; 50
根本没有增长。
然而,对于较小的n
,n^4 < 50
;此外,n^2
项前面有系数100。由于这个因素,对于n
的较小值,n ^ 4
但是由于我们的直觉是n^4
比n^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)
的教科书定义。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。