什么是f(n)= n ^ 4 + 100n ^ 2 + 50的上限?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是f(n)= n ^ 4 + 100n ^ 2 + 50的上限?相关的知识,希望对你有一定的参考价值。
我正在解决一些与Big-O相关的练习,我坚持这个:
Exercise - Find upper bound for f(n) = n^4 + 100n^2 + 50
我试图一步一步地解决它,但是出了点问题......:
1.=> n^4 + 100n^2 + 50 <= O(g(n))
2.=> n^4 + 100n^2 + 50 <= Cn ** Added -n^4 to both sides
3.=> n^4 + 100n^2 + 50 -n^4 <= Cn -n^4
4.=> 100n^2 + 50 <= Cn - n^4 ** Put n in common
5.=> 100n^2 + 50 <= n(C - n^3) ** Divided n in the opposite site
6.=> (100n^2 + 50)/n <= C -n^3 ** Assumed 1 for n
7.=> 100 + 50 <= C - 1
8.=> 151 <= C
有一些错误,因为答案是c = 2和n = 11。我在stackoverflow上看到了同样的问题但没有一步一步的解决方案
答案
猜测这个函数的上界是O(n ^ 4)是非常简单的,因为k * n ^ 4可以超过n ^ 3的任意倍数和n的低于4的其他倍数,在某个值之后n(其中k是倍数)。
我们来举几个示例:
- n ^ 4 <2 * n ^ 4,对于所有n> 1。
- 对于所有n> 2,n ^ 4 + n ^ 3 <2 * n ^ 4。
在您的情况下,您需要找到满足您的方程的系数K,使得n ^ 4 + 100n ^ 2 + 50 <= k *(n ^ 4)。
我将留下你要解决的正确等式,因为你所展示的那个明显不正确:
n^4 + 100n^2 + 50 <= O(g(n))
n^4 + 100n^2 + 50 <= O(n^4)
n^4 + 100n^2 + 50 <= k * n^4
n^4 + 100n^2 + 50 <= n^4 + 100*n^4 + 50*n^4
n^4 + 100n^2 + 50 <= 151 * (n^4)
// O(n^4) achieved, for all n >= 1.
您可以通过将n ^ 2替换为t将其转换为二次方程来求解此方程式,然后将方程式简化为:
t^2 + 100t + 50 <= k * t^2
// left for you to solve this.
// check for what value of `k` and `t`, this equation gets satisfied.
另一答案
据我所知,我们可以通过一种简单的方式解决这个问题: -
- n ^ 4 + 100 * n ^ 2 + 50 - 通过假设n ^ 2 = t,将该等式减小为二次方
- t ^ 2 + 100 * t + 50 - 如上所述,方程式发生变化
- 使用二次公式并求解该公式(t ^ 2 + 100 * t + 50),我们得到两个答案。
- t = -100 +/- sqrt(100 ^ 2 - 4 * 1 * 50)/2.1
- t = -71.8&-128.2 - 现在将值替换回n ^ 2
- n ^ 2 = -71.8&-128.2
- n = sqrt(-71.8)&sqrt(-128.2)= 8.47&11.32 - 查看上限数字并尝试解决可能是替代n的第一大数字。
- n = 11因此,我们将n = 11作为可用于求上限的第一大数
希望能帮助到你!
以上是关于什么是f(n)= n ^ 4 + 100n ^ 2 + 50的上限?的主要内容,如果未能解决你的问题,请参考以下文章
如何求解:f(n) = f(n-1) + 3*f(n-2) + 3*f(n-3) + f(n-4)