阶乘计算器
用 BigInt 精确计算 n!(n 最大 10000),同时给出结果位数、科学计数法近似值、连续阶乘表与计算耗时。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
非负整数 n范围 0 ≤ n ≤ 10000,结果为精确值(BigInt 计算)
计算结果 n!
输入 n 后自动计算
这个工具能做什么
- 算排列组合题:n 个人排队有多少种排法、从 n 个元素里取 k 个的组合数分母是多少,直接拿阶乘结果。
- 核对大数运算:普通计算器或编程语言里的 double 在 170! 之后就溢出了,这里用 BigInt 给出精确的完整数字。
- 写文档时引用结果位数与科学计数法:例如 100! 有 158 位、约 9.3326215e+157,方便判断数据规模。
- 用连续阶乘表快速查小 n 的值(0! 到 n!),或观察阶乘增长速度有多夸张。
示例
输入
100
输出
100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000(158 位,约 9.3326215e+157)
结果是 BigInt 精确值,没有浮点误差;科学计数法只是展示用的近似(保留 8 位有效数字并四舍五入)。
常见问题
为什么普通计算器算不出 170 以上的阶乘?
因为多数计算器用双精度浮点数,最大只能表示约 1.8e+308,170! 就已经到 7.26e+306,再大就溢出成 Infinity。这个工具全程用 BigInt 做整数乘法,所以 10000! 也能给出精确的每一位数字。
n 的上限是多少,为什么会有上限?
n 最大 10000。限制来自结果长度:10000! 约 35660 位十进制数,再往上浏览器里的字符串和表格渲染会明显变慢,所以位数超过 100000 位会直接拒绝计算,避免页面卡死。
0! 和 1! 为什么都是 1?
这是组合数学里的约定:0! 表示「0 个元素只有一种排列方式(什么都不排)」,这样组合数公式 C(n,0) = n!/(0!·n!) = 1 才成立。所以输入 0 会得到 1,不会报错。
结果位数和科学计数法是精确的吗?
位数是精确的(直接数结果字符串的长度);科学计数法是近似值,只保留 8 位有效数字并做四舍五入,位数很多时最后几位会和精确值不同,请以完整数字为准。
计算结果会上传吗?
不会。阶乘全部在浏览器里用 BigInt 计算,页面不发送任何网络请求,输入的数字也不会被记录。
关键词:factorial阶乘n!bigint大数阶乘scientific notation科学计数法阶乘表math