菜鸟的大数阶乘的位数公式计算
来源:互联网 发布:金融网络销售美女骗局 编辑:程序博客网 时间:2024/04/28 23:48
斯特灵公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用,而且,即使在n很小的时候,斯特灵公式的取值已经十分准确。
用
Stirling
公式计算
n!
结果的位数时,可以两边取对数,得:
log10(n!) = log10(2*PI*n)/2+n*log10(n/E);
故n!的位数为
log10(2*PI*n)/2+n*log10(n/E)+1(注意:当n=时,算得的结果为0)
用Stirling公式计算n!结果的位数时,可以两边取对数,得: log10(n!) = log10(2*PI*n)/2+n*log10(n/E);故n!的位数为 log10(2*PI*n)/2+n*log10(n/E)+1(注意:当n=1时,算得的结果为0)
代码如下:
#include<cstdio>#include<iostream>#include<cmath>#define PI 3.1415927const double E=exp(double(1));using namespace std;int main(){ int t,m,i,j,n; double sum; scanf("%d",&t); while(t--) { scanf("%d",&n); if(n==0) { cout << "1" << endl; continue; } int len = int(log10(sqrt(2*PI*n))+n*log10(n/E))+1; cout << len << endl; } return 0;}
顺带说下今天刚学的函数EXP函数。
exp函数————求以自然数e为底的指数值。
代码如下:
#include<cstdio>#include<iostream>#include<cmath>using namespace std;int main(){ double x=1.0; cout << exp(x) << endl; return 0;}就是我们上数学时说的log以e为底的数。
0 0
- 菜鸟的大数阶乘的位数公式计算
- 大数阶乘(还有不明白的地方——输出部分、计算位数公式)
- 大数阶乘的位数
- 大数阶乘的位数
- 阶乘位数的计算
- POJ 1423 Big Number 大数阶乘的位数计算
- 计算大数的阶乘
- HDU 1018 阶乘的位数 stirling公式
- OJ上关于阶乘位数的公式
- 求大数阶乘结果的位数
- 斯特林大数公式求阶乘位数
- 大数阶乘的计算(五)
- 大数阶乘的计算(六)
- 大数阶乘的计算(五)
- 大数阶乘的计算(六)
- 计算大数的阶乘(ZZ)
- ACM-大数N!的位数公式
- ACM-大数N!的位数公式
- trie学习 poj1204 Word Puzzles
- 协同过滤
- 利用java导入导出excel到oracle数据库
- 建立时间与保持时间(两个寄存器的详细分析)(转)
- CocoaPods安装和使用教程
- 菜鸟的大数阶乘的位数公式计算
- Linux下修改Matlab配置文件支持C++ 11标准以生成mex
- ARM指令ADR和LDR浅析
- Linux流量监控工具 - iftop (最全面的iftop教程)
- Linux内核高端内存
- 开始unity3d学习之旅-Unity3D环境搭建。
- 【LeetCode】LRU Cache
- Tomcat服务器配置详解
- 软件原型设计工具Axure RP安装教程