language-agnostic - 可以在计算之前知道阶乘有多大吗?

标签 language-agnostic gmp factorial

我正在使用 GMP 来计算非常大的阶乘(例如 234234!)。有没有办法在计算之前知道结果将(或可能)是多少位数字?

最佳答案

您可以转换 Stirling's approximation使用简单的对数数学公式计算数字位数:

n!         ~ sqr(2*pi*n) * (n/e)^n
log10(n!)  ~ log10(2*pi*n)/2 + n*log10(n/e)

硬件浮点数学足以实现这一点,这使得它快如闪电。

关于language-agnostic - 可以在计算之前知道阶乘有多大吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1113167/

相关文章:

language-agnostic - 被误解的好主意

language-agnostic - 规划网络应用

c++ - 使用 gmp mpz_pow_ui 的 mpz 类型溢出

python - 查找数字列表的阶乘

c - 使用递归的阶乘程序返回错误值

language-agnostic - 什么是 NOR 逻辑运算符?

html - 统一的 HTML 模板语言

c++ - 无法使用 Emscripten 编译 GMP lib(2)

c++ - 在 gmp 任意精度上生成正态分布

javascript - JavaScript 中的阶乘仅适用于减少递归,为什么?