繁体   English   中英

寻找函数的上界

[英]Finding the upper bound of a function

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

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

在上面的问题中,解决方案说 n>11 并且 n-nought 是 11。谁能解释为什么是 11? 供参考 - 这是 Narasimha Karumanchi 的 Data Structures and Algorithms Made Easy 中的一个问题

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

这是真的吗? 您可以将公式中的n替换为11并自行检查。

11是怎么获得的? 通过解决不等式。

它不是找到函数的上限。 它是对具有大 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 < 100 n^2。

但是因为我们直觉n^4n^2增长得快得多,所以我们预计,对于足够大的 n, 100 n^2 + 50 < n^4

为了断言和证明这一说法,我们需要更精确地了解“for n enough”的含义。 你的教科书找到了一个准确的值; 他们声称:对于 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)的教科书定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM