阶乘计算器(n!・排列nPr・组合nCr)
精确计算非负整数n的阶乘n!。同时支持排列(nPr)与组合(nCr),使用BigInt实现无位数限制的精确整数计算。附带0〜20的阶乘速查表。
0〜20 的阶乘速查表
汇总了0!到20!数值的一览表。20!已经是19位数。
| n | n! |
|---|---|
| 0 | 1 |
| 1 | 1 |
| 2 | 2 |
| 3 | 6 |
| 4 | 24 |
| 5 | 120 |
| 6 | 720 |
| 7 | 5,040 |
| 8 | 40,320 |
| 9 | 362,880 |
| 10 | 3,628,800 |
| 11 | 39,916,800 |
| 12 | 479,001,600 |
| 13 | 6,227,020,800 |
| 14 | 87,178,291,200 |
| 15 | 1,307,674,368,000 |
| 16 | 20,922,789,888,000 |
| 17 | 355,687,428,096,000 |
| 18 | 6,402,373,705,728,000 |
| 19 | 121,645,100,408,832,000 |
| 20 | 2,432,902,008,176,640,000 |
Tips
- 阶乘(n!)是1到n所有整数的连乘积。例如:5! = 5×4×3×2×1 = 120。特别规定 0! = 1。
- 排列(nPr)表示从n个不同元素中选出r个并「排序」的方法数。由于要区分顺序,其值总是不小于对应的组合数。例如:5P2 = 5×4 = 20。
- 组合(nCr)表示从n个不同元素中「选出」r个(不区分顺序)的方法数。例如:5C2 = 10(将5P2 = 20除以2个元素的排列方式数2!=2得到)。
- 阶乘增长极其迅速,20!已达19位数,100!更是高达158位。本工具采用BigInt,即使n很大也能精确计算,无误差。
- 若n过大(超过10,000),出于计算成本考虑会提示错误,这是为防止浏览器卡死而设置的实用上限。
常见问题
0! = 1 是数学上的一种约定。如果将其理解为「排列空集合(什么都不选)的方法只有1种(即不做任何排列这一种方式)」便很自然,同时这也是使阶乘性质 n! = n × (n-1)! 在n=1时依然成立所必需的定义。
排列(nPr)是「选出并排序」的方法数,区分顺序(AB和BA不同)。组合(nCr)只是「选出」,不区分顺序(AB和BA相同)。因此始终有 nCr ≤ nPr,且满足 nCr = nPr ÷ r! 的关系。
支持到10,000以内的整数。10,000!是超过35,000位的巨大数字,超出这个范围可能会因显示和计算成本导致浏览器变卡,因此设置了这一实用上限。
除了排列、组合的计算外,阶乘在概率论(骰子、扑克牌的组合)、统计学(二项分布、泊松分布的计算公式)、泰勒展开(如eˣ等级数展开中会出现阶乘)等数学的多个领域中都发挥着基础性作用。
闲话 ― 阶乘符号「!」为什么是感叹号
表示阶乘的符号「!」据说是1808年法国数学家克里斯蒂安·克兰普(Christian Kramp)在其著作中引入的。在此之前,不同数学家各自使用五花八门的表示法,并无统一标准。关于克兰普选择这一符号的原因说法不一,但流传较广的说法是,它表达了对阶乘数值急剧增长的「惊叹」之情。
阶乘的急速增长也体现在斯特林近似公式(n! ≈ √(2πn)(n/e)ⁿ)中,该公式被广泛用于统计学、概率论、组合数学等领域的近似计算。事实上,对于精确计算n!都十分困难的巨大n值,这一近似公式在实际应用中发挥着重要作用。
排列、组合的思想是解决许多日常概率问题的基础,例如彩票中奖概率的计算,以及一副扑克牌的洗牌方式数量(52张扑克牌的排列方式共有52!种,约8×10⁶⁷种)。组合数nCr也出现在「帕斯卡三角形」的每一行数字中,并与二项式定理((a+b)ⁿ的展开)密切相关。