斯特林公式及应用

来源:互联网 发布:数据标准大会 编辑:程序博客网 时间:2024/06/05 12:47

斯特林公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特林公式十分好用,而且,即使在n很小的时候,斯特林公式的取值已经十分准确。

公式为:n! \approx \sqrt{2\pi n}\, \left(\frac{n}{e}\right)^{n}.

斯特林公式的编程写法:N!=sqrt(2*pi*N)*(N/e)^N;(pi=3.1415926=acos(-1.0),e=2.718)

斯特林公式的转换:lgN!=(lg(2*pi)+lgN)/2+N*(lgN-lge);//+1即为长度。

通常求十进制长度将lg换为log10即可。

模板代码:

#include<bits/stdc++.h>using namespace std;const int PI = acos(-1.0);int main(){    int n;    while(cin>>n)    {        double ans;        ans=(0.5*log(2*PI*n)+n*(log(n)-1))/log(10);        cout<<(long long)ans+1<<endl;    }}


原创粉丝点击