阶乘计算器

结果

输入 0 到 1000 之间的任意非负整数即可计算出 n!,即从 1 到 n(含)所有正整数的乘积。该计算器采用任意精度运算,因此像 100!(158位)或 1000!(2568位)这样的数值都能精确返回,不会被截断。此功能特别适用于组合数学题、排列计数、概率推导以及所有涉及递归运算最终转化为阶乘表达式的情况。

如何计算阶乘

  1. 1

    输入数字n

    输入您要计算阶乘的非负整数。根据约定,`0! = 1`。

  2. 2

    获取精确值

    计算结果将以全精度整数形式呈现,即使涉及数百位数字亦然。

  3. 3

    查看位数

    对于极大的数值,结果下方的位数可以让你一眼看出其大小;例如 `1000!` 有 2568 位。

  4. 4

    复制用于计算

    将精确的整数复制到你的笔记、电子表格或其他工具中。

阶乘速查表与增长速度

阶乘的增长速度远超任何指数函数。下表为常用参考表,展示了其数值增长的迅猛程度以及IEEE 754双精度浮点数的计算极限。

小值

n n!
0 1
1 1
5 120
10 3,628,800
13 6,227,020,800
20 2,432,902,008,176,640,000

溢出边界

  • 32 位带符号整数:13! 处发生溢出(最大值约为 21 亿;12! = 479,001,600 是最后一个能容纳的值,13! = 6,227,020,800 已无法容纳)。
  • 64 位带符号整数:21! 处发生溢出(20! 是最后一个能容纳的值)。
  • IEEE-754 双精度:22! 起变得不精确;170! 是可表示的最大有限双精度值。

斯特林近似

对于较大的 n,斯特林公式给出一个实用的闭式估计值:

n! ≈ √(2πn) · (n/e)^n

n = 100 时,斯特林公式返回 9.3248 × 10^157,与精确值 100! 的偏差不到 0.1%。当无需精确整数、只需估算数量级时可以使用它。

常见用途

  • 排列:n 个不同元素按顺序排列的方式数 = n!
  • 组合: C(n, k) = n! / (k! (n - k)!)
  • 概率: 许多离散分布的分母。
  • 级数: 泰勒展开式,其系数包含阶乘项。

边界情况

  • 0! = 1 是一种惯例(空积)。它并非极限,而是一种确保组合公式保持一致性的定义。
  • 负整数和非整数在初等意义上没有阶乘;伽玛函数将这一概念加以推广:对非负整数有 Γ(n+1) = n!

常见问题

该计算器接受 0 到 1000 之间的 n。最大的输入 1000! 有 2568 位,计算瞬时完成。超过 1000 的值会被限制在最大值。

该约定旨在确保当k = 0k = n时,诸如nCk = n! / (k!(n-k)!)之类的公式仍保持正确。该值亦为空乘积的数值,即乘法单位元。

该工具主要针对离散阶乘运算。对于非整数参数,需使用伽马函数;多数科学编程库均提供针对整数的Γ(n)Γ(n+1) = n!函数,可将阶乘运算扩展至实数范围。

不会。该计算器不会将你输入的数字存入数据库,除计算阶乘外不作任何其他用途。在分步视图中,数值会包含在页面链接中,以便结果步骤显示它。

相关工具

此工具还提供其他语言版本