斯特灵公式在求素数方面的应用
2017-04-17 23:11
218 查看
斯特灵公式在求素数方面的应用:
公式的表现形式:
或更精确的
或
公式的作用:
斯特林公式(Stirling's approximation)是一条用来取n的阶乘的近似值的数学公式。公式的应用:
求n!的位数:
利用斯特林(Stirling)公式的进行求解。下面是推导得到的公式:res=(long)( (log10(sqrt(4.0*acos(0.0)*n)) + n*(log10(n)-log10(exp(1.0)))) + 1 );
当n=1的时候,上面的公式不适用,所以要单独处理n=1的情况!
这种方法速度很快就可以得到结果。
点击打开链接#include<iostream> #include<cmath> using namespace std; const long double c1=0.798179868358; //lg(2*pi) const long double c2=0.434294481903; //lg(e) int main() { int n,t; cin>>t; int s; long double c3;//特别要注意精度的问题,此处c3应为long double型,否则很容易丢失精度,造成答案错误 for(int i = 0; i < t; i++) { cin>>n; c3=log10((double)n); if(t>3) s=(c3+c1)/2+n*(c3-c2)+1;//由于10^0=1,10^1=10……,故在最后还要加一个1 //s=?发生自动类型转换,如10^2.5=x,则s=2+1,则说明x!介于10^2与10^3之间,位数为3! else s=1; cout<<s<<endl; } return 0; }
相关文章推荐
- 素数筛选与因数公式的应用,不要忘记文件尾的情况,oj 最重要的是细节
- (数论 素数分布的应用)nefu 117 素数个数的位数(素数定理的位数公式)
- 谈谈Teechart在工业监控方面的应用实例
- FFMPEG编译使用以及FFMPEG在编码转换方面的应用
- 些常用物理公式和AS3的结合应用
- 了解android应用开发的更多方面有更好的认识
- 几个约数方面的公式
- Ajax应用方面的一些补充
- Oracle 10g数据库中,当在数据库中创建用户时,基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间。 那么创建表空间的步骤是怎样实现的呢?本文我们主要就介绍了这一部分内容,接下来就让
- Android 应用电量计算公式
- 2018年全国多校算法寒假训练营练习比赛(第三场)---A---题(斯特灵公式)
- HDU 4228 Flooring Tiles 反素数的应用
- 美国政府研究实验室探索区块链在能源数据测试方面的应用
- openeim几本android应用方面优化和技巧方面的书
- 怎样做应用软件方面的项目?(一)
- 素数计数公式全面拉丁化改写-小有改进-Meissel公式-梅塞尔-Lehmer公式-莱梅=勒梅尔-筛法三种形式-孟庆余公式
- matlab 在排列组合方面的应用 (2)
- 今天做应用 用到了不少关于时间处理方面的东西,总结一下,希望大家指正!
- 英特尔称MeeGo将专注智能手机等四大方面应用
- CAD二次开发 --关于图层方面的应用