斯特林公式
数学公式
斯特林公式(Stirling's approximation)是一条用来取n的阶乘近似值的数学公式。一般来说,阶乘的计算复杂度为线性。当要为某些极大的n求阶乘时,常见的方法复杂度不可接受。斯特林公式能够将求解阶乘的复杂度降低到对数级。而且,即使在n很小的时候,斯特林公式的取值已经十分准确。
定义
斯特林公式在理论和应用上都具有重要的价值,对于概率论的发展也有着重大的意义。在数学分析中,大多都是利用Г函数、级数展开和含参变量的积分等知识进行证明或推导,这种证明比较复杂,有许多技巧,篇幅较大,不容易理解。近年来,一些国内外学者利用概率论中的指数分布泊松分布、χ2分布证之。
形式
或更精确的
证明
所以 即 ,即单调递减,又由积分放缩法有
即 ,即
单调有界定理 的极限存在,
利用Wallis公式
所以
程序
斯特林数判断阶乘位数
#include
#include
#include
#include
const double e = 2.71828182845;
const double pi = 3.1415926;
int main(void) {
int t, i, f, v;
double a, s;
const double log10_e = log10(e);
const double log10_2_pi = log10(2.0*pi)/2.0;
for (i = 0; i < t; ++i) {
a = v;
s = log10_2_pi + (a+0.5)*log10(a) - a * log10_e;
f = ceil(s);
return 0; }
最新修订时间:2023-11-30 15:11
目录
概述
定义
形式
证明
参考资料