问题的引出:丢2n个铜板,n个铜板正面朝上的概率?
解答:总共有2^2n种情况,而n个正面朝上的种类是C(2n,n)种,故所求概率
Pn=C(2n,n)/2^2n = (2n)!/(n!n!2^2n)
那么我们就想知道,当n趋向无穷大时,所求概率是多少?进而想求出n!的渐
进表达式。
下面就让我们循序渐进的找到stirling公式^_^
1、用n代替每个数:
n*(n-1)*.....2*1 ====== n*n*n.......*n
相比较我们可以发现,n->INF,lim(n!/n^n)=0,n^n过高估计n!了。
2、中庸策略,用平均数(n+1)/2的近似n/2代替每个数:
n*(n-1)*.....2*1 ====== (n/2)*(n/2)*(n/2).......*(n/2)
由算术平均大于几何平均,我们可以知道 pow(n!,1/n)<(1+n)/2≈n/2
事实上用数学归纳发可以证明n!<(n/2)^n if n>6
设B(n)=n!/(n/2)^n,可以发现B(n)是递减的数列,且B(n)>=0,则B(n)的极限一定存在。
补充:如果n->INF,lim S(n) = K,则n->INF,lim S(n+1)/S(n)=1
n->INF,lim B(n+1)/B(n) = lim [(n+1)!/((n+1)/2)^n]/[n!/(n/2)^n]
= 2 / lim (1+1/n)^n
= 2 / e
n->INF,lim B(n+1)/B(n) != 1,则可能是下面三种情况:
n->INF,lim B(n)=0,
n->INF,lim B(n)=INF,
n->INF,lim B(n)=NaN(不存在)
结合前面的B(n)递减,极限存在,知道是第一种情况,即n->INF,lim B(n)=0
所以(n/2)^n还是高估了n!
3、由上面求极限时我们发现出现了自然对数e,尝试用e代替2,所求极限
就变成1了:
令C(n)=n!/(n/e)^n,则n->INF,lim C(n+1)/C(n)=1,但还是无法得到
n->INF,lim C(n) = 1
下面来比较n!与(n/e)^n的大小,我们知道2<(1+1/n)^n<e
[(1+1/n)^n/e]*(n+1) < n+1 < [(1+1/n)^n/2]*(n+1)
即
[(n+1)/e]^(n+1)/(n/e)^n < (n+1)!/n! < [(n+1)/2]^(n+1)/(n/2)^n
结合数学归纳法可以证明:
(n/e)^n < n!
故C(n)>1,且可以发现C(n)是递增数列,结合前面找C(n)极限。
为了求C(n)极限,我们要用到著名的Wallis公式
Wallis公式:
(2/1)*(2/3)*(4/3)*(4/5)*...*(2n/(2n-1))*(2n/(2n+1)) = π/2
将其写成
n->INF,lim [(2^n)*(n!)]^4/[(2n!)^2*(2n+1)] = π/2
=>n->INF,lim [2^2n*(n!)^2]/[2n!*sqrt(n)] = sqrt(π) (n≈n+1/2)
由C(n)定义,可得2n!=C(2n)*(2n/e)^2n,代入上式,得
n->INF,lim C(n)^2/[C(2n)*sqrt(n)] = sqrt(π)
如果C(n)是有限的,则上式左边为0,右边为sqrt(π),矛盾,所以C(n)=INF
换言之,(n/e)^n低估了n!
4、我们只好尝试再稍微大一点的,例如取(n/e)^n*n :
D(n)=n!/[(n/e)^n*n]
为一递减数列,仿照上面带入Wallis公式,得到n->INF,lim D(n)=0,说明
D(n)又高估了n!
5、看来我们需要找一个更小的,比较直观的想到了将n换成sqrt(n) :
令A(n)=n!/[(n/e)^n*sqrt(n)]
n->INF,lim A(n)/A(n+1)=(1+1/n)^(n+1/2)/e
可以证明e < (1+1/n)^(n+1/2)
所以A(n)是正项递减的,所以A(n)极限存在。最后求得
n->INF,lim A(n) = sqrt(2π)
终于,我们得到了stirling公式:n->INF,lim n!/[sqrt(2πn)*(n/e)^n] = 1
源自http://episte.math.ntu.edu.tw./articles/mm/mm_17_2_05/index.html
首Stirling公式的意义在于:当n足够大之后n!计算起来十分困难,虽然有很多关于n!的不等式,
但并不能很好的对阶乘结果进行估计,尤其是n很大之后,误差将会非常大.
但利用Stirling公式可以将阶乘转化成幂函数,使得阶乘的结果得以更好的估计.而且n越大,估计得就越准确.