【问题标题】:Possible explanation for why lg(n!)=O(nlg(n)) [duplicate]为什么 lg(n!)=O(nlg(n)) [重复] 的可能解释
【发布时间】:2012-02-23 18:09:02
【问题描述】:

可能重复:
Is log(n!) = Θ(n·log(n))?

我的“证明”为什么 lg(n!) 是 O(nlg(n)) 是因为 n 在多项式上大于 lg(n!),因此 nlg(n) 在多项式上总是大于 lg(n !)。这是一个可以接受的理由吗?还是你必须在数学上证明它(在这种情况下我不知道如何处理阶乘)

【问题讨论】:

    标签: algorithm complexity-theory


    【解决方案1】:

    使用斯特林近似值:http://en.wikipedia.org/wiki/Stirling%27s_approximation

    ln n! = n\ln n - n +O(ln(n)) 
    

    【讨论】:

      【解决方案2】:

      回想一下 ln(a⋅b) = ln(a) + ln(b)。因此,ln(n!) = ln(n⋅(n−1)⋅…⋅2⋅1) = ln(n) + ln(n−1) + … ln(2) + ln(1);通过检查得出 n⋅ln(n) ≤ ln(n!)。

      【讨论】:

        【解决方案3】:

        您可能确实需要一些在数学上更严格的东西,但这并不太难。自从

         lg(n!) = lg 1 + lg 2 + lg 3 + ..... + lg n
        

        您可以考虑y = lg x 图形下方的区域,并将其与http://en.wikipedia.org/wiki/Rectangle_method 近似。你会得到类似http://en.wikipedia.org/wiki/Stirling's_approximation 的东西。

        因为你的矩形需要上下边界。

        【讨论】:

          【解决方案4】:

          我见过的通常证明是,对于足够大的 nn! n。两边取对数得到log(n!)n)。由于 log(ba) = a log(b),我们得到 log(n!) 。 p>

          【讨论】:

          • n^n 大于n! :)
          • @ChrisNash:是的,我不小心把我的不等式弄反了。已经修复了:)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-23
          • 2012-01-03
          • 2020-06-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多