我知道
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)乘以哪个常数使其小于log(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的日志规则。这条规则有帮助吗?
答案 0 :(得分: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)
答案 1 :(得分:0)
这不是一个简单的常数。我认为您正在考虑O(log(n!)) = O(n*log(n))
的证明,如果是这种情况,那么您需要使用Sterling's approximation。如果您使用此近似值,则可以显示对于任何值c < 1
,应该有一个值N,使得n> = N c * n*log(n) < log(n!)
。
答案 2 :(得分:0)
通过amit做一个更基本的第一个答案:
考虑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中间最大的事实,
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)
。