【问题标题】:Big-O proof involving a sum of logs涉及对数总和的 Big-O 证明
【发布时间】:2015-03-06 15:24:01
【问题描述】:

证明

我将系列放入求和中,但我不知道如何解决这个问题。任何帮助表示赞赏

【问题讨论】:

  • 您是否要求证明没有不需要完整 n 步总和的封闭形式解决方案?否则,O(n) 对于 n 个元素的总和来说是微不足道的

标签: math big-o logarithm


【解决方案1】:

这里有两个有用的数学事实可以提供帮助。首先,请注意对于任何 x,⌈x⌉ ≤ x + 1。因此,

从 i = 1 到 n 的总和 (⌈log (n/i)⌉) ≤ (从 i = 1 到 n log (n / i) 的总和) + n

因此,如果我们可以证明第二次求和是 O(n),我们就完成了。

利用日志的属性,我们可以重写

log(n/1) + log(n/2) + ... + log(n/n)

= log(nn / n!)

让我们看看我们是否可以简化这一点。使用对数的性质,我们得到了

log(nn / n!) = log(nn) - log(n!)

= n log n - log (n!)

现在,我们可以使用斯特林的近似值,它表示

log (n!) = n log n - n + O(log n)

因此:

n log n - log (n!)

= n log n - n log n + n - O(log n)

= O(n)

所以总和是 O(n),根据需要。

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    通常我们知道:

    因此:

    【讨论】:

    • 我可能是错的,但我不认为最初的总和是正确的。结果是 log 1 + log 2 + log 3 + ... + log n = log (n!) = Theta(n log n)。我弄错了吗?
    • @templatetypedef,我说的是 theta,我说的是大 O!
    • 另外,log2 (n-1) 怎么是常数?
    • @templatetypedef,i 是变量,n 是上限,它是一个常量。我可能错了,但请用数学承认它!
    猜你喜欢
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2023-03-12
    相关资源
    最近更新 更多