階乘計算器(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)ⁿ的展開)密切相關。