2014-02-27 197 views
3

我知道log(n!)=Ω(n * log(n))?

log (n!) =log (1) + log(2) + .... log(n-1) + log(n) 

n*log(n)= log(n) + log(n) + .... + log(n) or just adding log(n)'s n times. 

我可以乘什么不变的n * log(n)的,使得它比日志小(N!)?

我读了一些关于它是n/2 * log(n/2)的解决方案。那是什么常数?半?

一个解决方案是从这里。 Is log(n!) = Θ(n·log(n))?

如果C = 1/2,那么它不只是(n/2)* log(n)?日志里面的n怎么会受到影响,或者为什么n会突然变成n/2?

我知道log(a/b)= log a - log b的日志规则。这条规则有帮助吗?

+5

此问题似乎是无关紧要的,因为它属于math.stackexchange.com或cs.stackexchange.com。 – Barmar

+1

有一个类似的问题,有一个我不明白的解决方案。我将编辑我的帖子以获得链接。 http://stackoverflow.com/questions/2095395/is-logn-nlogn – Arrow

+0

我最近写了用黎曼和与梯形积分公式在这里简单的估计:(http://math.stackexchange.com/questions/689752) – LutzL

回答

2
log(n!) = log(1) + ... + log(n) >= log(n/2) + log(n/2+1) + ... + log(n) 
>= n/2*log(n/2) = n/2 *log(n) - n/2*log(2) >= (*) n/2 log(n) - n/4 log(n) 
= n/4 log(n) = 1/4 nlog(n) 

(*)是因为的n(N> N表示某个常数N) '足够高的' 值,n/2log(2) < n/4log(n),所以我们减少 '更大' 元素 - 其导致较低的结果。

所以,我们得到了log(n!) >= 1/4*nlog(n) - 这给了我们它在Omega(nlogn)的定义为c=1/4

关于第一部分,我们是如何走到log(n/2) + log(n/2+1) + ... +log(n)

log(1) + ... + log(n) >= log(1) + ... + log(n) - log(1) - log(2) - ... - log(n/2-1) = 
    = log(n/2) + log(n/2+1) + ... + log(n)      
+0

最后的不平等不应该在另一个方向吗?我的意思是:'n/2 * log(n) - n/2 * log(2)<= 1/2 * n * log(n)'。 – Bolo

+0

艾米特嗨,我在想,如果你能解释一下你怎样得到的log(n/2)+的log(n/2 + 1)+ ... +的log(n)? – Arrow

+0

@MATC他只拿下了组件的后半部分。这意味着他丢掉了上半场,所有的组成部分都是非负面的。 – Bolo

0

这不是一个简单的常量。我认为你正在考虑O(log(n!)) = O(n*log(n))的证明,如果是这样的话,那么你需要使用Sterling's approximation。如果使用此近似值,则可以显示对于任何值c < 1,应该有一个值N,使得对于n> = N c * n*log(n) < log(n!)

+1

(1)这个问题是关于欧米茄,而不是大-O。 (2)不需要精确的(最紧的)常数,只需要显示这样一个常量,这相当简单。 – amit

+0

@amit我看到它是关于欧米茄,但我认为我们需要最紧密的。也许我误解了这个问题? –

+0

从我这个问题的认识,@MattC想知道如何证明的log(n!)是欧米茄(nlogn),所以你只需要表现出这种恒定的存在。 – amit

0

要由阿密特的第一个答案多一点基本的:

考虑N = 1 * 2 * 3 * ...... *(N-1)* N与自己相反的顺序组合,即作为

(n!)^2=(n)*(1*(n-1))*(2*(n-2))*...*((n-1)*1)*(n) 

然后,每个内积的允许以下估计

k*(n-k)>=1*max(k,n-k)>=n/2 

和由算术 - 几何平均数,或者只是一个事实,即X *(1-x)是最大的中间0和1在1/2,

k*(n-k)<=((n-k)+k)/2)^2=(n/2)^2 

结合的一切,我们得到

n*(n/2)^(n-1)*n <= (n!)^2 <= n*(n/2)^(2(n-1))*n 

,并取对数,并通过2

(n+1)/2*log(n/2)+log(2) 
     <= log(n!) 
      <= n*log(n/2)+log(2) 

使下界有1/2*n*log(n)领先期限和上限将有领先任期n*log(n)