hdu1018 Big Number stirling公式
Stirling公式:n!与sqrt(2πn) * n^n * e^(-n)的值十分接近
所以log10(n!) = log(n!) / log(10) = ( n*log(n) - n + 0.5*log(2*π*n))/log(n);
代码:
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstdlib>
#include <cstring>
#include <iomanip>
#include <cstdio>
#include <string>
#include <bitset>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <list>
#include <map>
#include <set>
#define sss(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define mem1(a) memset(a,-1,sizeof(a))
#define mem(a) memset(a,0,sizeof(a))
#define ss(a,b) scanf("%d%d",&a,&b)
#define s(a) scanf("%d",&a)
#define p(a) printf("%d\n", a)
#define INF 0x3f3f3f3f
#define w(a) while(a)
#define PI acos(-1.0)
#define LL long long
#define eps 10E-9
#define N 100000
#define mod 100000000
using namespace std;
void mys(int& res)
{int flag=0;char ch;while(!(((ch=getchar())>='0'&&ch<='9')||ch=='-'))if(ch==EOF) res=INF;if(ch=='-') flag=1;else if(ch>='0'&&ch<='9') res=ch-'0';while((ch=getchar())>='0'&&ch<='9') res=res*10+ch-'0';res=flag?-res:res;
}
void myp(int a)
{if(a>9)myp(a/10);putchar(a%10+'0');
}
/*************************THE END OF TEMPLATE************************/
double stirling(int n){return ceil((n*log(double(n))-n+0.5*log(2.0*n*PI))/log(10.0));
}
int main()
{int cas,n;scanf("%d",&cas);while(cas--){scanf("%d",&n);if(n<=1)printf("1\n");else printf("%.0lf\n",stirling(n));}return 0;
}
hdu1018 Big Number stirling公式相关推荐
- [BZOJ3000] Big Number (Stirling公式)
Description 给你两个整数N和K,要求你输出N!的K进制的位数. Input 有多组输入数据,每组输入数据各一行,每行两个数--N,K Output 每行一个数为输出结果. Sample I ...
- Stirling公式(pku1423)
Stirling 公式 即: Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估计,尤其是n很大之后,误差将会非常大.但利用S ...
- Stirling公式的应用
Stirling公式也叫做斯特林公式,是用来取N! 的近似值. 在编程中,也用到了Stirling数的思想来解决以下问题. 第一类Stirling公式 题目 把n个物体排成k个非空循环的方法数目. S ...
- Stirling公式
Stirling 公式 Stirling公式 1.阶乘 n!=n(n−1)(n−2)⋯×3×2×1(n≥1)n! = n(n-1)(n-2)\cdots\times3\times2\times1\qu ...
- Wallis公式Stirling公式Gamma函数
Wallis公式 (!!是双阶乘,不超过这个整数且具有相同奇偶的正整数相乘,比如5!!=1×3×5, 6!!=2×4×6) 利用Wallis公式推导Stirling公式 斯特林公式是一条用来取n阶乘近 ...
- 【数论】斯特林公式 ——Stirling公式(取N阶乘近似值)
斯特灵公式是一条用来取n阶乘近似值的数学公式.一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用.从图中可以看出,即使在n很小的时候,斯特灵公式的取值已经十分准确. 公式为: ...
- Stirling公式 求n! 的位数
Stirling 公式 即: Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估计,尤其是n很大之后,误差将会非常大.但利用S ...
- 用Stirling公式的应用
/* 求m!的位数,1<=m<=10^7.时间1s. 使用Stirling公式进行求解 n!~~~~~~(n/e)^n(2*pi*n)^(1/2) */ #include<iost ...
- 斯特林公式 ——Stirling公式(取N阶乘近似值)(转)
斯特灵公式是一条用来取n阶乘近似值的数学公式.一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用.从图中可以看出,即使在n很小的时候,斯特灵公式的取值已经十分准确. 公式为: ...
最新文章
- Oracle 序列和触发器
- python接口返回json处理_python 接口返回的json字符串实例
- Boost:基于Boost的优先调度器程序
- [SpringBoot2]yaml
- composer-安装插件包
- sheets.add示例_Java ArrayDeque add()方法与示例
- .Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控
- 计算机专业开题报告指导老师意见评语,开题报告指导教师评语
- 模拟get和post请求(支持自定义header和测试CDN节点)
- python——redis
- java去0,Java如何处理除零?
- FSCapture录屏软件
- 微信小程序-colorUI组件库
- 怎样用python录音_python实现录音功能(可随时停止录音)
- A* 算法求解八数码问题
- Matlab之使用linearization估计人口数量
- 置信传播算法(Belief Propagation)简介
- 2021-10-27 turtle 绘画创意图形(梅花)
- vscode调试html页面status200无法访问此网站 localhost 拒绝了我们的连接请求
- 定制个性化App 引领企业跨入互联网时代
热门文章
- 达令再获5亿元融资 光际资本产业基金参投
- Linux C 输入输出重定向
- Flutter 自定义插件基础
- 计算机课程评价的标准,信息技术课程课堂教学评价标准
- android微信二维码收款hook,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。...
- Scratch(二十二):家务大转盘
- 安卓8.1运行linux,在 Linux 上安装安卓 8.1 Oreo 来运行应用程序和游戏 | Linux 中国...
- Java版种子推荐_2个跨度极大特性种子,各大Java版都适用
- 【公路村村通】【PTA】【python】【kruskal】
- 如何做一场成功的小程序带货直播呢?