无需登录 数据私有 本地保存

大数阶乘精确计算器 - 任意大整数n!

21
0
0
0

大数阶乘精确计算器

支持计算任意非负整数 n 的阶乘(0 ≤ n ≤ 100,000),使用高精度 BigInt 算法,结果精确无误。

快捷:

计算结果

- 位数字 耗时 - 末尾 - 个零
等待计算...

历史记录

暂无历史记录

常见问题与知识点

阶乘是数学中一个基本概念,用符号 n! 表示。它表示从 1 到 n 的所有正整数的乘积。

例如:5! = 1 × 2 × 3 × 4 × 5 = 120

特别规定:0! = 1(空乘积约定为1,这与组合数学和Gamma函数一致)。阶乘在排列组合、概率论、数论和计算机科学中都有广泛应用。

0! = 1 并非随意规定,它有坚实的数学基础:

  • 组合意义:从0个元素中选取0个元素的方式只有1种(什么都不选)。
  • 递推关系:n! = n × (n-1)!,当n=1时,1! = 1 × 0!,因此0!必须为1。
  • Gamma函数:Γ(1) = 0! = 1,这是阶乘在复数域上的解析延拓。

阶乘增长极快,远超指数增长(超指数增长):

  • 10! = 3,628,800(7位数)
  • 20! ≈ 2.43 × 1018(19位数)
  • 50! ≈ 3.04 × 1064(65位数)
  • 100! ≈ 9.33 × 10157(158位数)
  • 1000! 约有 2,568 位数字
  • 10000! 约有 35,660 位数字
  • 100000! 约有 456,574 位数字——如果打印出来需要约150页A4纸!

斯特林公式是阶乘的著名近似公式:n! ≈ √(2πn) · (n/e)n

它由苏格兰数学家詹姆斯·斯特林于1730年提出。对于大n值,该公式的相对误差约为 1/(12n),非常精确。

例如:n=100时,斯特林近似值的相对误差仅约0.083%。在统计学、物理学和算法分析中,斯特林公式被广泛用于估算大阶乘的量级。

本工具使用 JavaScript 的 BigInt 类型进行精确计算。BigInt 可以表示任意大小的整数,不受常规 Number 类型的安全整数范围(约9千万亿,即 253-1)限制。

计算采用逐项乘法:从2开始逐个乘到n。对于超大的n值(>20000),工具会自动切换到异步分批计算模式,将计算拆分为多个批次,避免阻塞浏览器界面,确保流畅的用户体验。

传统编程语言中,大数阶乘通常需要专门的大数库(如GMP),而BigInt使得在浏览器中原生精确计算成为可能。

  • 排列组合:n个不同物品的排列方式有n!种。一副扑克牌的排列方式约52!≈8×1067种,远超宇宙中的原子总数。
  • 概率统计:二项分布、泊松分布等公式中包含阶乘。
  • 算法分析:旅行商问题的暴力解法复杂度为O(n!),是典型的NP难问题。
  • 密码学:密钥空间大小常涉及阶乘计算。
  • 生物信息学:DNA序列比对算法中涉及阶乘。