码迷,mamicode.com
首页 > 其他好文 > 详细

Stirling公式

时间:2015-11-07 21:53:49      阅读:2084      评论:0      收藏:0      [点我收藏+]

标签:

n!与   技术分享

的值十分接近,利用Stirling公式将阶乘转化成幂函数,使得阶乘的结果得以更好的估计。而且n越大,估计得就越准确

用该公式计算n!结果的位数时,可以两边取对数,得:

技术分享

#include<iostream>
#include<math.h>
using namespace std;
const double e=2.7182818284590452354,pi=3.141592653589793239;   //e和i的值要精确
double str_ling(int n){
    return 0.5*log10(2*pi*n)+n*log10(n/e);
}
int main(){
    int t;
    while (cin>>t)
    {
        cout<<(int)str_ling(t)+1<<endl;
    }
    return 0;
}

 

Stirling公式

标签:

原文地址:http://www.cnblogs.com/wintersong/p/4946127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!