输入 n,算出 n! 的精确值。
| 5! = 120(3 位,末尾 1 个零) | |
| 10! = 3628800(7 位,末尾 2 个零) | |
| 13! = 6227020800(超过十亿) | |
| 20! = 2432902008176640000(19 位,末尾 4 个零) | |
| 25! 末尾 6 个零,50! 末尾 12 个零,100! 末尾 24 个零 |
这个计算器怎么用
阶乘 n! 就是把从 1 到 n 的所有正整数连乘起来,5! 就是 1×2×3×4×5=120,规定 0! 和 1! 都等于 1。它增长得极快,20! 就已经是 18 位数,靠计算器按键很容易溢出或丢精度。填入一个非负整数,工具用大整数逐个连乘,给出完整精确的 n!,并顺带告诉你结果一共有多少位、末尾跟着几个 0、写成科学计数法大约是多少,排列组合、概率题里常要用到这些信息。
计算过程全部在你自己的浏览器里完成,填入的数字不会上传到服务器,用着放心。结果为估算参考,重要事项请以官方或专业渠道为准。
阶乘计算器是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“阶乘计算器”、“n的阶乘怎么算”、“阶乘在线计算”,说的都是这个。
使用方法
- 在上面的输入框里填入需要的数值(日期类直接选择日期)。
- 按需要选择好选项,点一下「计算」按钮。
- 结果会显示在下方,可以随时修改数值重新计算。
阶乘是怎么定义的
n 的阶乘写作 n!,等于从 1 连乘到 n 的乘积,即 n!=1×2×3×…×n。例如 4!=1×2×3×4=24。有两个约定要记住:0!=1,1!=1,这不是随便规定的,而是为了让排列组合公式(如 C(n,0)=1)在边界上依然成立。阶乘只对非负整数有定义,负数和小数没有普通意义上的阶乘(那要用伽马函数推广,不在本工具范围内)。
为什么末尾会有一串零
n! 末尾有多少个零,取决于它的因数里包含多少个 10,而一个 10 由一个 2 和一个 5 组成。在连乘中因子 2 远多于因子 5,所以末尾零的个数由因子 5 的个数决定,等于 ⌊n/5⌋+⌊n/25⌋+⌊n/125⌋+… 一直加到除数超过 n 为止。比如 25! 里,25/5=5 个、25/25=1 个,共 6 个因子 5,所以末尾正好有 6 个零。这个规律在算末尾零、判断整除时很常用。
阶乘长得有多快
- 5!=120,10!=3628800,只有七位数,还在日常范围
- 13! 就超过了十亿,普通计算器的显示位数开始不够用
- 20!≈2.43×10^18,已是 18 位,超出常见整数精度范围
- 70! 已超过 10^100,比目前可观测宇宙里的原子总数还多
- 正因增长极快,算大 n! 必须用大整数连乘才能保证每一位都精确
常见问题
为什么 0! 等于 1,而不是 0?把 0! 定义为 1 是数学上的约定,目的是让相关公式自洽。比如排列数 A(n,n)=n!,组合数 C(n,0)=n!/(0!·n!),只有当 0!=1 时这些式子在边界处才成立。也可以从「空积」的角度理解:不乘任何数时,乘积的默认值就是 1,就像不加任何数时和的默认值是 0 一样。
这个工具能算多大的 n?为了兼顾精度和响应速度,工具限制 n 在 0 到 20000 之间。这个范围内都用大整数逐个连乘,保证结果每一位都精确,不会像普通浮点计算那样在十几位之后就丢精度。n 特别大时位数会成千上万,完整数字很长,工具会在结果里给出总位数,超长时只显示首尾并用省略号表示中间部分。
科学计数法那一行为什么写「约」?精确值那一行是一位不差的完整整数,而科学计数法只取了前几位有效数字(如 3.628800×10^6)方便你快速估量数量级,尾部做了舍入,所以标「约」。需要精确数值时以上面的完整结果为准,需要快速比较大小或估算量级时看科学计数法即可。