高中生自行整理,如有错误,欢迎指出,不胜感激。
斯特林公式(Stirling's approximation)是一条用来取n的阶乘的近似值的数学公式。一般来说,阶乘的计算复杂度为线性。当要为某些极大大的n求阶乘时,常见的方法复杂度不可接受。斯特林公式能够将求解阶乘的复杂度降低到对数级。而且,即使在n很小的时候,斯特林公式的取值已经十分准确。
斯特林公式如下:
(资料图片仅供参考)
我们已经知道ln(1+x)与ln(1-x)的泰勒展开:
设x=1/(2n+1) ,n=1,2,3,···,得:
所以上式子就变为了:
而右边的式子<
因为左式显然>1,所以有
取一下指数:
设一下:那么
由上面的不等式知道: 所以该数列其实是单调递减的,且显然一定有下界0
那么该数列的极限一定存在,不妨设为a
最终得到:我们能看出来左右两个数列是单调递增的。
而,所以
又
两边取下指数:
那么游戏就进行到了一半,现在可以得出结论:
把前面的an带进去:
Wallis圆周率无穷乘积公式:
而
将前面的结论n变成2n:
故
带回到极限中:
所以
大功告成,代回我们之前的结论:即斯特林公式。
n很大的时候:
所以
斯特林公式在理论和应用上都具有重要的价值,对于概率论的发展也有着重大的意义。在数学分析中,大多都是利用Г函数、级数和含参变量的积分等知识进行证明或推导,很为繁琐冗长。近年来,一些国内外学者利用概率论中的指数分布、泊松分布、χ²分布证之。
以下是一个计算斯特林公式的近似值的代码。(使用Python语言):
请注意,斯特林公式是一个近似公式,对于较大的n,它的近似值更加准确。