当f(n)= n ^ .1且g(n)= log(n)^ 10时,f(n)=Ω(g)?

时间:2011-09-08 02:47:17

标签: performance math big-o execution-time

我被告知“任何指数都胜过任何对数”。

但是当指数在0和1之间时,对数的执行时间不会变得更快吗?因此,通过该逻辑,它将是f = O(g)

我无法选择是否遵循我的直觉或我被告知的内容,但我被告知可能并不完全准确。

3 个答案:

答案 0 :(得分:3)

我们在这里尝试一些数学。一个重要的事实是对数函数是单调递增的,这意味着如果

  

log f(x)≤logg(x)

然后

  

f(x)≤g(x)

现在,让我们看看这里做了什么。我们有两个函数,x 0.1 和log 10 x。如果我们拿走他们的日志,我们就会得到

  

log(x 0.1 )= 0.1 log x

  

log(log 10 x)= 10 log log x

由于log log x比log x增长得慢得多,直观地我们可以看到函数x 0.1 最终将超过log 10 x。

现在,让我们正式化这个。我们想要找到x的某些值,以便

  

x 0.1 > log 10 x

让我们假设这些是基数为10的对数,只是为了使数学更容易。如果我们假设某些k的x = 10 k ,我们就得到了

  

(10 k 0.1 ≥log 10 10 k

     

10 0.1 k > log 10 10 k

     

10 0.1 k > ķ

现在,取k = 100.现在我们有了

  

10 0.1 * 100 > 100

     

10 10 > 100

这显然是真的。由于两个函数都是单调递增的,这意味着对于x≥10 100 ,确实

  

x 0.1 > log 10 x

这意味着x 0.1 = O(log 10 k)为真。

希望这有帮助!

答案 1 :(得分:1)

渐近分析实际上是关注长期关系(因为n假定值越大,函数的值如何比较)?它也忽略了常数,这就是为什么你有时会看到像f(x)= 10000000 * x = O(x ^ 2)这样的奇怪情况。

对于nf(n) > g(n)的大值,这才是真正重要的。

答案 2 :(得分:0)

使用限制规则验证n^0.1 = big omega(log^10(n))的另一种方法是什么?

限制规则是:

  

限制为n->无穷大f(n)/ g(g)。

     
    

如果极限为正无穷大,则f(n)!= O(g(n))& g(n)= O(f(n))或f(n)=大欧米茄(g(n))

         

如果限制为0,则f(n)= O(g(n))& g(n)!= O(f(n))

         

如果限制是正实数,则f(n)= O(g(n))& g(n)= O(f(n))或f(n)=大theta(g(n))

  

对于这个问题:

  

设f(n)= O(n ^ 0.1)并且让g(n)= log ^ 10(n)

这给了我们限制:

  

限制为n->无穷大(n ^ 0.1)/(log ^ 10(n))

对限制使用L'Hospital's规则10次:

  

限制为n->无穷大((0.1)^ 10 * ln ^ 10(b)* n ^ 0.1)/(10!)其中b是对数的基础

由于n项仅在分子中,因此极限接近无穷大。

按限制规则

  

log ^ 10(n)= O(n ^ 0.1)& n ^ 0.1!= O(log ^ 10(n)或n ^ 0.1 =大欧米茄(log ^ 10(n))。