【问题标题】:Complexity order f(x) = x vs g(x) = log (x)^(log (x))复杂度阶 f(x) = x vs g(x) = log (x)^(log (x))
【发布时间】:2015-08-07 13:57:01
【问题描述】:

什么是 Big-O 复杂度顺序:f(x) = x vs g(x) = log (x)^(log (x))?

【问题讨论】:

标签: math time-complexity computer-science


【解决方案1】:

通过示例可能更容易理解这一点。考虑 log 表示基于 2 的对数。我们可以忽略常量,因为我们想要渐近线的行为。运行时间f(x) vs g(x) x 如下:

x=2^1: f(x) = 2^1 = 2    ; g(x) = log(2^1)^log(2^1) = 1^1 = 1     ;f(x) > g(x)
x=2^2: f(x) = 2^2 = 4    ; g(x) = log(2^2)^log(2^2) = 2^2 = 4     ;f(x) = g(x)
x=2^3: f(x) = 2^3 = 8    ; g(x) = log(2^3)^log(2^3) = 3^3 = 27    ;f(x) < g(x)
x=2^4: f(x) = 2^4 = 16   ; g(x) = log(2^4)^log(2^4) = 4^4 = 256   ;f(x) < g(x)
...
x=2^100: f(x) = 2^100    ; g(x) = log(2^100)^log(2^100) = 100^100 ;f(x) << g(x)

所以当 x 接近无穷大时,f(x) 的运行时间远小于g(x)

【讨论】:

    【解决方案2】:

    假设x &gt; 0,因为g(x) 只为x 定义好。这意味着我们可以进行替换 x = e^t,这给了我们

     f(x) = e^t
     g(x) = t^t
    

    很明显g(x) &gt; f(x) 对所有t &gt; e,即对所有x &gt; e^e。特别是,这意味着f(x) = O(g(x)),事实上很容易证明f(x) = o(g(x))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 2012-04-25
      • 1970-01-01
      • 2020-05-08
      相关资源
      最近更新 更多