階乘

在數學中，正整数的階乘（英語：factorial）是所有小於等於該數的正整數的積，记作 n ! {\displaystyle n!} ，例如5的階乘表示為 5 ! {\displaystyle 5!} ，其值為120：
並定義，1的階乘 1 ! {\displaystyle 1!} 和0的階乘 0 ! {\displaystyle 0!} 都為1，其中0的階乘表示一個空積。
1808年，基斯頓·卡曼引進這個表示法： n ! = ∏ k = 1 n k ∀ n ≥ 1 {\displaystyle n!=\prod _{k=1}^{n}k\quad \forall n\geq 1} ，符號 Π {\displaystyle \Pi } 表示連續乘積，亦即 n ! = 1 × 2 × 3 × ⋯ × n {\displaystyle n!=1\times 2\times 3\times \cdots \times n} 。階乘亦可以遞迴方式定義： 0 ! = 1 {\displaystyle 0!=1} ， n ! = ( n − 1 ) ! × n {\displaystyle n!=(n-1)!\times n} 。除了自然數之外，階乘亦可定義于整個實數（負整數除外），其与伽瑪函數的关系为：
階乘應用在許多數學領域中，最常應用在組合數學、代數學和数学分析中。在組合數學中，階乘代表的意義為 n {\displaystyle n} 個相異物件任意排列的數量，例如前述例子， 5 ! = 120 {\displaystyle 5!=120} 其代表了5個相異物件共有120種排列法。在正整數的情形下， n {\displaystyle n} 的階乘又可以稱為n的排列數。
早在12世紀，印度學者就已有使用階乘的概念來計算排列數的紀錄。1677年時，法比安·斯特德曼使用Change ringing（英语：Change ringing）來解釋階乘的概念。在描述遞迴方法之後，斯特德將階乘描述為：「現在這些方法的本質是這樣的：一個數字的變化數包含了所有比他小的數字（包括本身）的所有變化數……因為一個數字的完全變化數是將較小數字的變化數視為一個整體，並透過將所有數字的完整變化聯合起來。」，其原文如下：
而符號n!是由法國數學家克里斯蒂安·克蘭普在1808年使用。
階乘可透過連乘積來定義：
用連乘積符號可表示為：
從上述公式中，可以推導出遞迴關係式：
但遞迴定義須給出起點，因此需要定義零的階乘。 除此之外，遞迴關係在階乘函數中各個值皆成立，例如：
為了將遞迴關係式擴展到 n = 0 {\displaystyle n=0} ，因此需要定義0的階乘：
可以得到：
有幾個獨立的理由認為這個定義是和諧的。 其中包括：
n ! {\displaystyle n!} 可质因子分解为 ∏ p ≤ n p ∑ r = 1 n [ n p r ] {\displaystyle \prod _{p\leq n}p^{\sum _{r=1}^{n}[{\frac {n}{p^{r}}}]}} ，如 6 ! = 2 4 × 3 2 × 5 1 {\displaystyle 6!=2^{4}\times 3^{2}\times 5^{1}} 。
計算 n ! {\displaystyle n!} 時，若 n {\displaystyle n} 不太大，普通的科學計算機都可以計算，能夠處理不超過 10 100 {\displaystyle 10^{100}} （古高爾）數值的計算機可以計算至 69 ! {\displaystyle 69!} ，而雙精度浮點數的計算機則可計算至 170 ! {\displaystyle 170!} 。
當 n {\displaystyle n} 很大時，可用斯特林公式估計： n ! ≈ 2 π n ( n e ) n {\displaystyle n!\approx {\sqrt {2\pi n}}\;\left({\frac {n}{e}}\right)^{n}} 更精确的估计是： n ! = 2 π n ( n e ) n e λ n {\displaystyle n!={\sqrt {2\pi n}}\;\left({\frac {n}{e}}\right)^{n}e^{\lambda _{n}}} 其中 1 12 n + 1 < λ n < 1 12 n {\displaystyle {\frac {1}{12n+1}}<\lambda _{n}<{\frac {1}{12n}}}
階乘原始的定義是在整數，為離散，然而在部分領域如機率論要探討到連續或其他需求（如組合數當取出的數量大於原有的數量會出現負階乘）時，則需要將階乘從正整數推廣到實數，甚至是複數。
除了非負整數之外，還可以為非整數值定義階乘函數，但這需要使用更高級的數值分析方法。
可以透過插值的方式將階乘兩整數之間填入數值，但其插入的數值必須也要滿足階乘的遞迴定義。一個良好的插值結果是 Γ {\displaystyle \Gamma } 函数，其為所有非負整數和複數給出了定義，而當 z {\displaystyle z} 的實部為正時，可以透過下列瑕積分來計算 Γ {\displaystyle \Gamma } 函数值：
它與階乘的關係是對於任何自然數n滿足：
另外，我们也可利用此式以计算任意大于-1的实数的阶乘：
可以透過 Γ {\displaystyle \Gamma } 函數來計算複數的階乘。右圖顯示了複數階乘之模與輻角的等值線
令 f {\displaystyle f} 為：
右圖顯示了幾個模（絕對值） ρ {\displaystyle \rho } 與輻角 φ {\displaystyle \varphi } 的幾個等級，圖表的繪製範圍為 − 3 ≤ x ≤ 3 {\displaystyle -3\leq x\leq 3} , − 2 ≤ y ≤ 2 {\displaystyle -2\leq y\leq 2} 個單位長。較粗的鉛直線為輻角值為 φ = ± π {\displaystyle \varphi =\pm \pi } 的等值線。
細線表示模或輻角相等之函數值的位置。在每個負整數的位置為奇點，無法定義其模和輻角，並且在離奇點越近的地方，等值線的密度就越密集。
在|z| < 1時，可使用泰勒級數來計算：
z ! = ∑ n = 0 ∞ g n z n = 1 − γ z + 1 2 ! ( γ 2 + π 2 6 ) z 2 − 1 3 ! ( γ 3 + π 2 γ 2 + 2 ζ ( 3 ) ) z 3 + 1 4 ! ( γ 4 + π 2 γ 2 + 3 π 4 20 + 8 ζ ( 3 ) γ ) z 4 − 1 5 ! ( γ 5 + 5 π 2 γ 3 3 + 3 π 4 γ 4 + ( 20 γ 2 + 10 π 2 3 ) ζ ( 3 ) + 24 ζ ( 5 ) ) z 5 + ⋯ + 1 n ! ( ∫ 0 ∞ e − t ( ln ⁡ t ) n d t ) z n + ⋯ ≈ 1 − 0.577215664 z + 0.989055995 z 2 − 0.907479076 z 3 + 0.981728086 z 4 − 0.981995068 z 5 + ⋯ {\displaystyle {\begin{aligned}z!&=\sum _{n=0}^{\infty }g_{n}z^{n}\,\\&=1-\gamma z+{\frac {1}{2!}}\left(\gamma ^{2}+{\frac {\pi ^{2}}{6}}\right)z^{2}-{\frac {1}{3!}}\left(\gamma ^{3}+{\frac {\pi ^{2}\gamma }{2}}+2\zeta (3)\right)z^{3}\\&+{\frac {1}{4!}}\left(\gamma ^{4}+\pi ^{2}\gamma ^{2}+{\frac {3\pi ^{4}}{20}}+8\zeta (3)\gamma \right)z^{4}-{\frac {1}{5!}}\left(\gamma ^{5}+{\frac {5\pi ^{2}\gamma ^{3}}{3}}+{\frac {3\pi ^{4}\gamma }{4}}+(20\gamma ^{2}+{\frac {10\pi ^{2}}{3}})\zeta (3)+24\zeta (5)\right)z^{5}+\cdots +{\frac {1}{n!}}\left(\int _{0}^{\infty }e^{-t}(\ln t)^{n}\,dt\right)z^{n}+\cdots \\&\approx 1-0.577215664z+0.989055995z^{2}-0.907479076z^{3}+0.981728086z^{4}-0.981995068z^{5}+\cdots \\\end{aligned}}}
其中，γ為歐拉-馬斯刻若尼常數、ζ(z)為黎曼ζ函數。部分計算機代數的系統存在可以直接產生這些展開式係數的語法。
較大的階乘值可透過双伽玛函数積分的連續分數來近似，這個方法由T. J. Stieltjes於1894提出。
將階乘寫為 z ! = e P ( z ) {\displaystyle z!=e^{P(z)}} ，其中 P ( z ) {\displaystyle P(z)} 為：
Stieltjes給出了其連分數值：
前幾項係數 a n {\displaystyle a_{n}} 為：
負整數的階乘可透過階乘的遞迴定義 n ! = n × ( n − 1 ) ! {\displaystyle n!=n\times (n-1)!} 逆推而得：
但由於在此定義下計算負一的階乘會出現除以零（即 ( 0 − 1 ) ! = 0 ! 0 {\displaystyle (0-1)!={\frac {0!}{0}}} ），因此無法直接給出負整數的階乘。
透過伽瑪函數或其展開式亦可以將階乘擴展到其他能定義加法和乘法等基本運算的數學結構，如矩陣。
矩陣的階乘具有如下性質：
並且 Γ ( I ) = I {\displaystyle \Gamma (I)=I} ，其中， I {\displaystyle I} 是單位矩陣、 A {\displaystyle A} 是一個方陣，同時 A ! {\displaystyle A!} 是一個非奇異矩陣。
換句話說，即矩陣 A {\displaystyle A} 為單位矩陣的純量 n {\displaystyle n} 倍，其階乘為 A ! = ( n I ) ! = n ! I {\displaystyle A!=(nI)!=n!I} ，例如 ( n 0 0 n ) ! = n ! I = ( n ! 0 0 n ! ) {\displaystyle {\bigl (}{\begin{smallmatrix}n&0\\0&n\end{smallmatrix}}{\bigr )}!=n!I={\bigl (}{\begin{smallmatrix}n!&0\\0&n!\end{smallmatrix}}{\bigr )}}
對於一個可對角化矩陣 ( a b c d ) {\displaystyle {\bigl (}{\begin{smallmatrix}a&b\\c&d\end{smallmatrix}}{\bigr )}} 其階乘為：
其中， λ 1 {\displaystyle \lambda _{1}} 和 λ 2 {\displaystyle \lambda _{2}} 是 ( a + 1 b c d + 1 ) {\displaystyle {\bigl (}{\begin{smallmatrix}a+1&b\\c&d+1\end{smallmatrix}}{\bigr )}} 的特徵值，分別為 λ 1 = 1 + ( a + d − Ω ) 2 {\displaystyle \lambda _{1}=1+{\begin{smallmatrix}{\frac {\left(a+d-\Omega \right)}{2}}\end{smallmatrix}}} 和 λ 2 = 1 + ( a + d + Ω ) 2 {\displaystyle \lambda _{2}=1+{\begin{smallmatrix}{\frac {\left(a+d+\Omega \right)}{2}}\end{smallmatrix}}} ，其中， Ω = ( a − d ) 2 + 4 b c {\displaystyle \Omega ={\begin{smallmatrix}{\sqrt {(a-d)^{2}+4bc}}\end{smallmatrix}}}
階乘的定義可推廣到複數，其与伽瑪函數的关系为：
伽瑪函數滿足 Γ ( n + 1 ) = ( n ) Γ ( n ) {\displaystyle \Gamma (n+1)=(n)\Gamma (n)} ，
另一種定义扩展是阿達馬伽瑪函數，但由於其不在所有實數上皆能滿足階乘的遞迴定義，只有在正整數上滿足階乘的遞迴定義 n ! = n × ( n − 1 ) ! {\displaystyle n!=n\times (n-1)!} 因此比較少被拿出來討論。
其後面的項 1 Γ ( 1 − x ) {\displaystyle {\frac {1}{\Gamma (1-x)}}} 只有在正整數的情形為零。也因為其有加上一項，也因此，此擴展在描述負階乘時不會有除以零的情況，而使阿達馬伽瑪函數是一個處處連續、無奇點的函數。
正整數的雙階乘表示小於等於該數的所有具相同奇偶性的正整數的乘積，即：
{ ( 2 n − 1 ) ! ! = 1 × 3 × 5 × ⋯ × ( 2 n − 1 ) ( 2 n ) ! ! = 2 × 4 × 6 × ⋯ × ( 2 n ) , n ∈ N {\displaystyle {\begin{cases}(2n-1)!!=1\times 3\times 5\times \cdots \times (2n-1)\\(2n)!!=2\times 4\times 6\times \cdots \times (2n)\end{cases}},n\in \mathbb {N} }
無視上述定義的 n ! ! {\displaystyle n!!} 因為即使值的 N {\displaystyle N} ，雙階乘為奇數可擴展到最實數和複數 z {\displaystyle z} 的注意到，當 z {\displaystyle z} 是一個正的奇數則：
獲得的表達接受一個以上公式 ( 2 n + 1 ) ! ! {\displaystyle (2n+1)!!} 和 ( 2 n − 1 ) ! ! {\displaystyle (2n-1)!!} 並表示在條件發生的階乘函數的 γ {\displaystyle \gamma } 既可以看出（使用乘法定理）等同於一個給定在這裡。
z ! ! {\displaystyle z!!} 定義為所有複數除負偶數。
比較上式與 ( 2 n ) ! ! {\displaystyle (2n)!!} 的原始定義，廣義的雙階乘在 ( 2 n ) ! ! {\displaystyle (2n)!!} 的計算上須包含 0 ! ! {\displaystyle 0!!} ，即
( 2 n ) ! ! = 2 n × ( 2 n − 2 ) × ( 2 n − 4 ) × ⋯ × 4 × 2 × 0 ! ! {\displaystyle (2n)!!=2n\times (2n-2)\times (2n-4)\times \cdots \times 4\times 2\times 0!!}
其中 0 ! ! = 2 π {\displaystyle 0!!={\sqrt {\frac {2}{\pi }}}}
使用它的定義，半徑為 R {\displaystyle R} 的n維超球其體積可表示為：
n ! ( k ) {\displaystyle n!^{(k)}} 被称为 n {\displaystyle n} 的 k {\displaystyle k} 重阶乘，定义为：
能將多重階乘推廣到複數（甚至是四元數）
所謂的四次阶乘（又称四重阶乘） 不是 n ! 4 {\displaystyle n!^{4}} ，而是 ( 2 n ) ! n ! {\displaystyle {\frac {(2n)!}{n!}}} ，前幾個四次階乘為
它也等於
hyperfactorial（有時譯作過階乘）寫作 H ( n ) {\displaystyle H(n)} ，其定義為：
hyper階乘和階乘差不多，但產生更大的數。hyper階乘的增長速度卻並非跟一般階乘在大小上相差很遠。 前幾項的hyper階乘為：
1995年，尼爾·斯洛恩和西蒙·普勞夫定義了超階乘（superfactorial）為首 n {\displaystyle n} 個階乘的積。即 s f ( n ) = 1 ! × 2 ! × 3 ! × ⋯ × n ! {\displaystyle \mathrm {sf} (n)=1!\times 2!\times 3!\times \cdots \times n!} 。一般來說
前幾項的超階乘為：
柯利弗德·皮寇弗在他的書Key to Infinity定義了另一個超階乘，寫作 n S ! {\displaystyle n\mathrm {S} \!\!\!\!\!\;\,{!}} （ S ! {\displaystyle \mathrm {S} \!\!\!\!\!\;\,{!}} 為!和S重疊在一起）： n S ! = n ( 4 ) n {\displaystyle n\mathrm {S} \!\!\!\!\!\;\,{!}=n^{(4)}n} 表示hyper4，使用高德納箭號表示法即 n S ! = ( n ! ) ↑↑ ( n ! ) {\displaystyle n\mathrm {S} \!\!\!\!\!\;\,{!}=(n!)\uparrow \uparrow (n!)} 。這個數列：
質數階乘是所有小於或等於該數且大於或等於2的質數的積，自然數 n {\displaystyle n} 的質數階乘，寫作 n # {\displaystyle n\#} 。
目前質數階乘只能用遞迴方式定義，因為尚未找到一個能用基本函數表示所有質數的函數或一條包含所有質數的曲線
一般情況下質數階乘定義為：
其中, π ( n ) {\displaystyle \pi (n)} 是質數計數函數，小於或等於某個實數 n {\displaystyle n} 的質數的個數的函數 ≤ n {\displaystyle \leq n} 。
阶幂也称叠幂或者重幂记作 n ! {\displaystyle n^{!}} （感叹号!写在自然数的右上角），它的定义是将自然数1至 n {\displaystyle n} 的数由大到小作幂指数重叠排列，数学定义如下：
其中 n ≥ 1 {\displaystyle n\geq 1} ，前几项的重幂数为：
1 , 2 , 9 , 262144 , ... （OEIS數列A049384）
第5个重幂数是一个有183231位阿拉伯数字组成的超大自然数，其值約為 6.20606987866 × 10 183230 {\displaystyle 6.20606987866\times 10^{183230}}
另外一種定義則是每個阶幂都先取一次階乘：
二次阶幂：
相应地， m {\displaystyle m} 次阶幂定义如下：
其中 n {\displaystyle n} ， m ≥ 1 {\displaystyle m\geq 1} ，且 n , m ∈ Z {\displaystyle n,m\in Z} 。
倒數階乘是指所有小於及等於該數的正整數之倒數的積，其值與階乘的倒數相同：
其無窮級數收斂在e：
考量階乘可以表示為連續的伽瑪函數，則有
這個值又稱為弗朗桑－羅賓遜常數（英语：Fransén–Robinson_constant）。
反階乘是階乘的反函數，用於求解指定的數是哪個數的階乘。例如120的反階乘為5，因為5的階乘為120。反階乘可以透過泰勒級數或反伽瑪函數來評估與計算。
反階乘可以用了推算某個數大約是多少的階乘。
由於階乘與伽瑪函數之間的關聯，反階乘也可以透過反伽瑪函數近似公式來估計：
因此，反階乘也可以寫成如下的渐近分析形式：
其中 W 0 ( x ) {\displaystyle W_{0}(x)} 是朗伯W函数。這個公式是利用史特靈公式求逆得到的，因此也可以展開為漸近級數。