作者:讨厌小妹_153 | 来源:互联网 | 2023-05-19 06:25
1.求阶乘后的位数原理斯特林公式——Stirling公式(取N阶乘近似值)于是求n!的位数就是求log10((2*PI*n)^12*(ne)^n)+1即12*log10(2*PI*
1.求阶乘后的位数
原理
斯特林公式 ——Stirling公式(取N阶乘近似值)
于是求n!的位数就是求log10((2 * PI*n) ^ 1 / 2 * (n / e) ^ n) + 1
即 1 / 2 * log10(2 * PI*n) + n * log10(n / e) + 1
代码
const double PI = 3.141592654;
const double E = 2.71828182846;
int fact_len(int n)
{
int s = 1;
if (n > 3)
s = log10(2 * PI*n) / 2 + n * log10(n / E) + 1;
return s;
}
阶乘有关模板