我正试图找到函数的大O时间复杂度
f(x)=(x 4 + x 2 + 1)/(x 4 + 1)
和功能
f(x)=(x 3 + 5 log x)/(x 4 + 1)
如果我可以消除分数的分母上的+1项,那将非常简单,因为那时我可以通过x 4 来除以。我怎样才能消除它们?
谢谢!
答案 0 :(得分:1)
big-O表示法的定义如下:当存在M-real且x0> 0时,我们写f(x)= O(g(x)),使得每个x> 0。 x0为真| f(x)| ≤M| g(x)|。
对于案例1,我们将证明f(x)= O(1)。设g(x)= 1.选择M = 2且x0 = 0给我们
|(x 4 + x 2 + 1)/(x 4 + 1)| =(x 4 + x 2 + 1)/(x 4 + 1)≤(x ^ 4 +(x ^ 4 + 1) )+ 1)/(x 4 + 1)(因为x 2 <= x 4 + 1,对于x> 0)= 2 = M | g(x)|
所以在这之后我们将得到f(x)= O(1)。我希望这对第二个例子也有帮助。我想你明白了。你只需选择合适的M,x0和g并证明不等式。
答案 1 :(得分:1)
使用big-O时,通常有助于降低上限和上限值,而不必获得准确的值。
例如,给定(x 4 + x 2 + 1)/(x 4 + 1),有一件事可能是有用的是要注意,对于x≥1,
(x 4 + x 2 + 1)/(2x 4 )≤(x 4 + x 2 + 1)/(x 4 + 1)≤(x 4 + x 2 + 1) / X 4
现在你已经把所有东西都夹在中间了,你可以简单地从那里简化所有内容来获得
(1/2)(x 4 + x 2 + 1)/(x 4 )≤(x 4 + x 2 + 1)/(x 4 + 1)≤(x 4 + x 2 + 1)/ x 4
(1/2)(1 + 1 / x 2 + 1 / x 4 )≤(x 4 + x 2 + 1)/(x 4 + 1)≤1+ 1 / x 2 + 1 / x 4 < / p>
不等式的前半部分表示你的表达式是Ω(1),而后半部分给你的是O(1)。因此,表达式为Θ(1)。
尝试使用同样的技巧来简化其中的第二步。
希望这有帮助!