🌐 ZH

🔢 阶乘计算器

使用JavaScript的BigInt精确计算n!(n的阶乘),没有舍入误差。n只能是0到5000之间的整数。

请输入0到5000之间的整数,结果将以精确整数形式显示。

计算结果
指南

了解更多

01

什么是阶乘(n!)?

阶乘是从1到n的所有正整数的乘积,定义为n! = 1 × 2 × 3 × ⋯ × n。例如5! = 1×2×3×4×5 = 120。按惯例,0! = 1。阶乘是组合数学(排列组合)、概率论、级数展开等众多数学领域的基础工具。
02

为什么用BigInt计算?

JavaScript的普通数值类型(Number)超过2⁵³-1(约9×10¹⁵)后会失去精度。但只要n稍微增大,n!很快就会超过这个数值(18!已约为6.4×10¹⁵)。本计算器使用JavaScript的BigInt类型进行乘法运算,因此即使n很大,也能显示没有舍入误差的精确整数结果。
03

参考数值与输入上限

5! = 120,10! = 3,628,800,15! = 1,307,674,368,000,20! = 2,432,902,008,176,640,000。随着n增大,位数会急剧增长(100!有158位,1000!有2,568位),结果会变得非常长,因此为了控制服务器/浏览器负载,将输入限制为n ≤ 5000。

常见问题

为什么n的最大值限制为5000?
随着n增大,n!的位数呈指数增长(5000!约有16,326位),计算和渲染所需的资源也会随之增加。设置5000的上限是为了防止资源过度消耗,同时仍能覆盖几乎所有实际使用场景。
为什么0!等于1?
0!按数学惯例定义为1。这符合组合数学中"不选择任何元素的排列方式只有1种"的解释,也使阶乘的递归定义n! = n × (n-1)!在n=1时依然成立。
输入负数或小数会怎样?
阶乘只对非负整数有定义,因此输入负数、小数或非数字字符会显示错误提示。(伽马函数可以将阶乘扩展到除负整数外的实数和复数,但本计算器仅处理整数阶乘。)