[BZOJ3000] Big Number (Stirling公式)】的更多相关文章

Description 给你两个整数N和K,要求你输出N!的K进制的位数. Input 有多组输入数据,每组输入数据各一行,每行两个数——N,K Output 每行一个数为输出结果. Sample Input 2 5 2 10 10 10 100 200 Sample Output 1 1 7 69 HINT 对于100%的数据,有2≤N≤2^31, 2≤K≤200,数据组数T≤200. Source Solution 安利一个高深的公式:Stirling公式 用这个公式,当n较大时很精确,而且…
题目大意 求N!有多少位 题解 用公式直接秒杀... 代码: #include<iostream> #include<cmath> using namespace std; #define ESP 1e-9 #define Pi acos(-1) #define e exp(1.0) int main() { int T; cin>>T; while(T--) { int digit; double n; cin>>n; digit=(*Pi*n)+n*lo…
由Stirling公式: $$n! \approx \sqrt{2 \pi n} (\frac{n}{e})^n$$ 故:$$\begin{align} ans &= log_k n! + 1 \\ &\approx log_k [\sqrt{2 \pi n} (\frac{n}{e})^n] + 1 \\ &= \frac{1}{2} log_k 2 \pi n + n * (log_k n - log_k e) + 1\\ \end {align}$$ 又$log_a b =…
斯特灵公式是一条用来取n阶乘近似值的数学公式.一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用.从图中可以看出,即使在n很小的时候,斯特灵公式的取值已经十分准确. 公式为:    从图中看出,对于足够大的整数n,这两个数互为近似值.更加精确地:        或者         这个公式,以及误差的估计,可以推导如下.我们不直接估计n!,而是考虑它的自然对数:     按一般方法计算N的阶乘,其时间复杂度为O(N):    N!= 1 * 2 * 3 * 4 * 5 *…
Stirling公式: n!约等于sqrt(2*pi*n)*(n/e)^n 另外,e约等于2.71828182845409523... 试了一下发现math库里面并不能像pi一样直接调e但是发现挺好记的..>_< POJ1423 题面很简单,就是让我们计算n!的位数. 我们知道十进制数的位数=trunc(ln(n)/ln(10))+1 而对于n=a*b,ln(n)=ln(a)+ln(b) 所以ln(sqrt(2*pi*n)*(n/e)^n)=ln(sqrt(2*pi*n))+n*ln(n/e)…
Description 给你两个整数N和K,要求你输出N!的K进制的位数. Input 有多组输入数据,每组输入数据各一行,每行两个数——N,K Output 每行一个数为输出结果 Sample Input 2 52 1010 10100 200 Sample Output 11769对于100%的数据,有2≤N≤2^31, 2≤K≤200,数据组数T≤200. 题解 用Stirling公式求近似值 位数=logk(n!)+1 ≍ logk(sqrt(2πn)*(n/e)^n)+1 = logk…
我们知道整数n的位数的计算方法为:log10(n)+1n!=10^m故n!的位数为 m = log10(n!)+1 lgN!=lg1+lg2+lg3+lg4+lg5+....................+lgN; 但是当N很大的时候,我们可以通过数学公式进行优化:(即Stirling公式) N!=sqrt(2*pi*N)*(N/e)^N:(pi=3.1415926=acos(-1.0),e=exp(1)) lgN!=(lg(2*pi)+lgN)/2+N*(lgN-lge); 斯特林公式可以用…
1. 利用数学公式lg(n!)=lg(2)+lg(3)+....+lg(n) 求解 2.…
求n!在k进制下的位数,n<=1e18 斯特林公式:$n!\approx \sqrt{2\pi n}(\frac{n}{e})^n$ 在n很大的时候有较好的精度保证. $\log_{k}n!+1=\frac{1}{2}\frac{\ln(2\pi n)}{\ln k}+n\frac{\ln n-\ln e}{\ln k}+1$ n较小时直接暴力求解即可. #include<cmath> #include<cstdio> #include<algorithm> #d…