为什么lg(n!)为O(nlg(n))的“证明”是因为n多项式大于lg(n!),因此nlg(n)总是多项式大于lg(n) !)。这是可以接受的原因吗?或者你必须在数学上证明它(在这种情况下我不知道如何处理因子)
答案 0 :(得分:5)
我见过的通常证据是,对于足够大的 n , n! < Ñ名词 的。取两边的对数得到 log(n!)<的log(n 名词)。由于 log(b a )=一个log(b),我们得到 log(n!)< n log(n)。
答案 1 :(得分:1)
你可能确实需要一些在数学上更严格的东西,但这并不太难。由于
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的内容。
因为它是'小o',你的矩形需要在上方和下方绑定。
答案 2 :(得分:1)
使用斯特林的近似值:http://en.wikipedia.org/wiki/Stirling%27s_approximation
ln n! = n\ln n - n +O(ln(n))
答案 3 :(得分:0)
回想一下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!)。