我正在研究一个问题,我给出了f(n)= n ^ 2 *(log(n))^ - 1和g(n)= n(log(n))^ 2,以及要求确定f = O(g),f =ω(g)或两者(f = theta(g))。
这个问题可以推广到(n ^ a)* log(n)^ b和(n ^ c)* log(n)^ d
我理解任何多项式都支配任何对数,例如n支配log(n),而n ^ 2支配nlog(n)但是我不确定如何使其适应更复杂的问题,例如:
或更好:
多项式项是否总是决定f是否支配g,反之亦然?如果是这样,为什么?如果没有,问题怎么解决?
谢谢!
答案 0 :(得分:2)
答案:n^a * log(n)^b
如果n^c * log(n)^d
支配a > c
。换句话说,您只需要查看多项式部分。 (当然除非a=c
,在这种情况下,你要查看polylog部分。)
这是因为多对数函数总是渐近地小于多项式函数。更确切地说,如果p(n) = a*(log n)^b
(p
在n
中是多对数的),则p(n) = o(n^epsilon)
为任何epsilon > 0
(请参阅this Wikipedia page获取正式声明,和this answer证明)。
因此,对于任何n^a * log(n)^b = o(n^(a + epsilon))
,我们都有epsilon > 0
。从中可以很容易地得出上面的答案。