階乘

在數學中，正整數的**階乘**（英語：Factorial）是所有小於等於該數的正整數的積，計為 $n!$ ，例如 5 的階乘表示為 $5!$ ，其值為 120：

　
: $5!={{{{{5}\times {4}}\times {3}}\times {2}}\times {1}}=120$

並定義，1 的階乘 $1!$ 和 0 的階乘 $0!$ 都為 1，其中 0 的階乘表示一個空積。

1808 年，基斯頓・卡曼引進這個表示法： $n!=\prod _{k=1}^{n}k\quad \forall n\geq 1$ ，符號 $\Pi $ 表示連續乘積，亦即 $n!=1\times 2\times 3\times \cdots \times n$ 。階乘亦可以遞迴方式定義： $0!=1$ ， $n!=(n-1)!\times n$ 。除了自然數之外，階乘亦可定義於整個實數（負整數除外），其與伽瑪函數的關係為：

　
: $z!=\Gamma (z+1)=\int _{0}^{\infty }t^{z}e^{-t}\,dt$

階乘應用在許多數學領域中，最常應用在組合學、代數學和數學分析中。在組合學中，階乘代表的意義為 $n$ 個相異物件任意排列的數量，例如前述例子， $5!=120$ 其代表了 5 個相異物件共有 120 種排列法。在正整數的情形下， $n$ 的階乘又可以稱為 n 的排列數。

## 歷史

早在 12 世紀，印度學者就已有使用階乘的概念來計算排列數的紀錄。1677 年時，法比安・斯特德曼使用 Change ringing 來解釋階乘的概念。在描述遞迴方法之後，斯特德將階乘描述為：「現在這些方法的本質是這樣的：一個數字的變化數包含了所有比他小的數字（包括本身）的所有變化數…… 因為一個數字的完全變化數是將較小數字的變化數視為一個整體，並透過將所有數字的完整變化聯合起來。」，其原文如下：

> 
> Now the nature of these methods is such, that the changes on one number comprehends [includes] the changes on all lesser numbers ... insomuch that a compleat Peal of changes on one number seemeth to be formed by uniting of the compleat Peals on all lesser numbers into one entire body.
> 
> 

而符號 _n_!是由法國數學家克里斯蒂安・克蘭普在 1808 年使用。

## 定義

階乘可透過連乘積來定義：

　
: $n!=1\cdot 2\cdot 3\cdots (n-2)\cdot (n-1)\cdot n,$

用連乘積符號可表示為：

　
: $n!=\prod _{i=1}^{n}i.\quad \forall n\geq 1$

從上述公式中，可以推導出遞迴關係：

　
: $n!=n\cdot (n-1)!$

但遞迴定義須給出 base case，因此需要定義零的階乘。
除此之外，遞迴關係在階乘函數中各個值皆成立，例如：

　
: ${\begin{aligned}5!&=5\cdot 4!\\6!&=6\cdot 5!\\50!&=50\cdot 49!\end{aligned}}$

### 0 的階乘

為了將遞迴關係擴展到 $n=0$ ，因此需要定義 0 的階乘：

　
: $0!=1$

可以得到：

　
: $1!=1\cdot 0!=1$

有幾個獨立的理由認為這個定義是和諧的。 其中包括：

* 在 $n=0$ 的情況， $n!$ 定義為「沒有任何數字相乘的結果」，所以更廣泛之慣例的例子是以不存在任何因數的乘法單位元素來當作其解。（參閱空積）
* 對於零個物品只有一種排列方式，因為沒有任何東西可以置換，唯一的重新排列就是什麼都不做。
* 它使組合數學中的許多恆等式對所有適用的值皆有效，例如從空集合中選擇 0 個元素的方法數，可由二項式係數給出：

　
: : ${\binom {0}{0}}=1$ .

　
: 而從空集合中選擇 0 個元素的方法數為一種，即沒有任何東西可以取，唯一的取法就是什麼都不做。定義 $0!=1$ 可以滿足：

　
: ${\binom {0}{0}}={\frac {0!}{0!0!}}=1$ .

　
: 更一般地，在 $n$ 個相異元素的集合中取出 $n$ 個相異元素的方法數，可由二項式係數給出：

　
: ${\binom {n}{n}}=1$ .

　
: 其方法數只有一種，即全部取出。定義 $0!=1$ 可以滿足：

　
: ${\binom {n}{n}}={\frac {n!}{n!0!}}=1$

* 此定義允許將許多公式更嚴謹地表達為冪級數，例如指數函數：

　
: : $e^{x}=\sum _{n=0}^{\infty }{\frac {x^{n}}{n!}}.$

## 性質

 $n!$ 可質因子分解為 $\prod _{p\leq n}p^{\sum _{r=1}^{n}[{\frac {n}{p^{r}}}]}$ ，如 $6!=2^{4}\times 3^{2}\times 5^{1}$ 。

## 計算

計算 $n!$ 時，若 $n$ 不太大，普通的科學計算機都可以計算，能夠處理不超過 $10^{100}$ （古高爾）數值的計算機可以計算至 $69!$ ，而雙精度浮點數的計算機則可計算至 $170!$ 。

當 $n$ 很大時，可用斯特林公式估計： $n!\approx {\sqrt {2\pi n}}\;\left({\frac {n}{e}}\right)^{n}$ 
更精確的估計是： $n!={\sqrt {2\pi n}}\;\left({\frac {n}{e}}\right)^{n}e^{\lambda _{n}}$ 
其中 ${\frac {1}{12n+1}}<\lambda _{n}<{\frac {1}{12n}}$

## 部分函數值

## 非正整數的階乘

階乘原始的定義是在整數，為離散，然而在部分領域如機率論要探討到連續或其他需求（如組合數當取出的數量大於原有的數量會出現負階乘）時，則需要將階乘從正整數推廣到實數，甚至是複數。

###  $\Gamma $ 函數和 $\Pi $ 函數

除了非負整數之外，還可以為非整數值定義階乘函數，但這需要使用更高級的數值分析方法。

可以透過插值的方式將階乘兩整數之間填入數值，但其插入的數值必須也要滿足階乘的遞迴定義。一個良好的插值結果是 $\Gamma $ 函數，其為所有非負整數和複數給出了定義，而當 $z$ 的實部為正時，可以透過下列瑕積分來計算 $\Gamma $ 函數值：

　
: $\Gamma (z)=\int _{0}^{\infty }t^{z-1}e^{-t}\,dt\,.$

它與階乘的關係是對於任何自然數 n 滿足：

　
: $n!=\Gamma (n+1)\,.$

### 複數的階乘

可以透過 $\Gamma $ 函數來計算複數的階乘。右圖顯示了複數階乘之模與輻角的等值線

令 $f$ 為：

　
: $f=\rho e^{i\varphi }=(x+{\rm {i}}y)!=\Gamma (x+iy+1)$

右圖顯示了幾個模（絕對值） $\rho $ 與輻角 $\varphi $ 的幾個等級，圖表的繪製範圍為 $-3\leq x\leq 3$ , $-2\leq y\leq 2$ 個單位長。較粗的鉛直線為輻角值為 $\varphi =\pm \pi $ 的等值線。

細線表示模或輻角相等之函數值的位置。在每個負整數的位置為奇異點，無法定義其模和輻角，並且在離奇異點越近的地方，等值線的密度就越密集。

在 |_z_| < 1 時，可使用泰勒級數來計算：

　
: $z!=\sum _{n=0}^{\infty }g_{n}z^{n}\,.$

其泰勒級數的前幾項係數為：

其中，γ 為歐拉 - 馬斯刻若尼常數

　
: _ζ_(_z_) 為黎曼 ζ 函數

部分計算機代數的系統存在可以直接產生這些展開式係數的語法，例如 SageMath。

此種方式甚至可以將階乘推廣至四元數甚至其他數學結構。

較大的階乘值可透過雙伽瑪函數積分的連續分數來近似，這個方法由 T. J. Stieltjes 於 1894 提出。

將階乘寫為 $z!=e^{P(z)}$ ，其中 $P(z)$ 為：

　
: $P(z)=p(z)+{\frac {\ln 2\pi }{2}}-z+\left(z+{\tfrac {1}{2}}\right)\ln(z)\,,$

Stieltjes 給出了其連分數值：

　
: $p(z)={\cfrac {a_{0}}{z+{\cfrac {a_{1}}{z+{\cfrac {a_{2}}{z+{\cfrac {a_{3}}{z+\ddots }}}}}}}}$

前幾項係數 $a_{n}$ 為：

　
:

### 負整數的階乘

負整數的階乘可透過階乘的遞迴定義 $n!=n\times (n-1)!$ 逆推而得：

　
: $(n-1)!={\frac {n!}{n}}.$

但由於在此定義下計算負一的階乘會出現除以零（即 $(0-1)!={\frac {0!}{0}}$ ），因此無法直接給出負整數的階乘。

### 其他數學結構的階乘

透過伽瑪函數或其展開式亦可以將階乘擴展到其他能定義加法和乘法等基本運算的數學結構，如矩陣。

矩陣的階乘具有如下性質：

　
: $A!=\Gamma (A+I)=A\Gamma (A)=A(A-I)!$ 。

並且 $\Gamma (I)=I$ ，其中， $I$ 是單位矩陣、 $A$ 是一個方陣，同時 $A!$ 是一個非奇異矩陣。

換句話說，即矩陣 $A$ 為單位矩陣的純量 $n$ 倍，其階乘為 $A!=(nI)!=n!I$ ，例如 ${\bigl (}{\begin{smallmatrix}n&0\\0&n\end{smallmatrix}}{\bigr )}!=n!I={\bigl (}{\begin{smallmatrix}n!&0\\0&n!\end{smallmatrix}}{\bigr )}$

對於一個可對角化矩陣 ${\bigl (}{\begin{smallmatrix}a&b\\c&d\end{smallmatrix}}{\bigr )}$ 其階乘為：

　
: $\left.{\begin{pmatrix}a&b\\c&d\end{pmatrix}}\right.!=\Gamma \left({\bigl (}{\begin{smallmatrix}a+1&b\\c&d+1\end{smallmatrix}}{\bigr )}\right)={\frac {1}{2\Omega }}{\begin{pmatrix}\Gamma (\lambda _{1})\left(d-a+\Omega \right)+\Gamma (\lambda _{2})\left(a-d+\Omega \right)&-2b\left(\Gamma (\lambda _{1})-\Gamma (\lambda _{2})\right)\\-2c\left(\Gamma (\lambda _{1})-\Gamma (\lambda _{2})\right)&\Gamma (\lambda _{1})\left(a-d+\Omega \right)+\Gamma (\lambda _{2})\left(d-a+\Omega \right)\end{pmatrix}}$

其中， $\lambda _{1}$ 和 $\lambda _{2}$ 是 ${\bigl (}{\begin{smallmatrix}a+1&b\\c&d+1\end{smallmatrix}}{\bigr )}$ 的特徵值，分別為 $\lambda _{1}=1+{\begin{smallmatrix}{\frac {\left(a+d-\Omega \right)}{2}}\end{smallmatrix}}$ 和 $\lambda _{2}=1+{\begin{smallmatrix}{\frac {\left(a+d+\Omega \right)}{2}}\end{smallmatrix}}$ ，其中， $\Omega ={\begin{smallmatrix}{\sqrt {(a-d)^{2}+4bc}}\end{smallmatrix}}$

## 變化

### 定義擴展

階乘的定義可推廣到複數，其與伽瑪函數的關係為：

　
: $z!=\Gamma (z+1)=\int _{0}^{\infty }t^{z}e^{-t}\,\mathrm {d} t.\!$ 。

伽瑪函數滿足 $\Gamma (n+1)=(n)\Gamma (n)$ ，

另一種定義擴展是阿達馬伽瑪函數，但由於其不在所有實數上皆能滿足階乘的遞迴定義，只有在正整數上滿足階乘的遞迴定義 $n!=n\times (n-1)!$ 因此比較少被拿出來討論。

　
: $H(x+1)=x\,H(x)+{\frac {1}{\Gamma (1-x)}}$

其後面的項 ${\frac {1}{\Gamma (1-x)}}$ 只有在正整數的情形為零。也因為其有加上一項，也因此，此擴展在描述負階乘時不會有除以零的情況，而使阿達馬伽瑪函數是一個處處連續、無奇異點的函數。

### 遞進 / 遞降階乘

* 遞進階乘： $(x)_{n}=x^{\overline {n}}=x(x+1)...(x+n-1)$
* 遞降階乘： $x^{\underline {n}}=x(x-1)...(x-n+1)$
* $x^{\overline {n}}=(-1)^{n}(-x)^{\underline {n}}$

### 雙階乘

正整數的雙階乘表示小於等於該數的所有具相同奇偶性的正整數的乘積，即：

$$
{\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!!$ 因為即使值的 $N$ ，雙階乘為奇數可擴展到最實數和複數 $z$ 的注意到，當 $z$ 是一個正的奇數則：

　
: $z!!=z(z-2)\cdots (3)=2^{\frac {z-1}{2}}\left({\frac {z}{2}}\right)\left({\frac {z-2}{2}}\right)\cdots \left({\frac {3}{2}}\right)=2^{\frac {z-1}{2}}{\frac {\Gamma \left({\frac {z}{2}}+1\right)}{\Gamma \left({\frac {1}{2}}+1\right)}}={\sqrt {\frac {2^{z+1}}{\pi }}}\Gamma \left({\frac {z}{2}}+1\right)\,.$

獲得的表達接受一個以上公式 $(2n+1)!!$ 和 $(2n-1)!!$ 並表示在條件發生的階乘函數的 $\gamma $ 既可以看出（使用乘法定理）等同於一個給定在這裡。

 $z!!$ 定義為所有複數除負偶數。

比較上式與 $(2n)!!$ 的原始定義，廣義的雙階乘在 $(2n)!!$ 的計算上須包含 $0!!$ ，即

$$
(2n)!!=2n\times (2n-2)\times (2n-4)\times \cdots \times 4\times 2\times 0!!
$$

其中 $0!!={\sqrt {\frac {2}{\pi }}}$

使用它的定義，半徑為 $R$ 的 n 維超球其體積可表示為：

　
: $V_{n}={\frac {2(2\pi )^{\frac {n-1}{2}}}{n!!}}R^{n}.$ n=1,3,5,...

　
: $V_{n}={\frac {(\pi )^{\frac {n}{2}}}{{\frac {n}{2}}!}}R^{n}.$ n=2,4,6,...

### 多重階乘

 $n!^{(k)}$ 被稱為 $n$ 的 $k$ 重階乘，定義為：

　
: $n!^{(k)}=\left\{{\begin{matrix}1,\qquad \qquad \ &&{\mbox{if }}0\leq n<k;\\n(n-k)!^{(k)},&&{\mbox{if }}n\geq k.\quad \ \ \,\end{matrix}}\right.$

### 廣義的多重階乘

能將**多重階乘**推廣到複數（甚至是四元數）

　
: $z!^{(k)}=z(z-k)\cdots (k+1)=k^{\frac {z-1}{k}}\left({\frac {z}{k}}\right)\left({\frac {z-k}{k}}\right)\cdots \left({\frac {k+1}{k}}\right)=k^{\frac {z-1}{k}}{\frac {\Gamma \left({\frac {z}{k}}+1\right)}{\Gamma \left({\frac {1}{k}}+1\right)}}\,.$

### 四次階乘

所謂的四次階乘（又稱**四重階乘**） 不是 $n!^{4}$ ，而是 ${\frac {(2n)!}{n!}}$ ，前幾個**四次階乘**為

　
: 1, 2, 12, 120, 1680, 30240, 665280, ....

它也等於

　
: ${\begin{aligned}2^{n}{\frac {(2n)!}{n!2^{n}}}&=2^{n}{\frac {(2\cdot 4\cdots 2n)[1\cdot 3\cdots (2n-1)]}{2\cdot 4\cdots 2n}}\\[8pt]&=(1\cdot 2)\cdot (3\cdot 2)\cdots [(2n-1)\cdot 2]=(4n-2)!^{(4)}.\end{aligned}}$

### **過**階乘

hyperfactorial（有時譯作**過階乘**）寫作 $H(n)$ ，其定義為：

　
: $H(n)=\prod _{k=1}^{n}k^{k}=1^{1}\cdot 2^{2}\cdot 3^{3}\cdots (n-1)^{n-1}\cdot n^{n}$

hyper 階乘和階乘差不多，但產生更大的數。hyper 階乘的增長速度卻並非跟一般階乘在大小上相差很遠。
前幾項的 hyper 階乘為：

　
: 1, 4, 108, 27648, 86400000, ... （OEIS 數列 A002109）

### 超階乘

1995 年，尼爾・斯洛恩和西蒙・普勞夫定義了超階乘（superfactorial）為首 $n$ 個階乘的積。即 $\mathrm {sf} (n)=1!\times 2!\times 3!\times \cdots \times n!$ 。一般來說

　
: $\mathrm {sf} (n)=\prod _{k=1}^{n}k!=\prod _{k=1}^{n}k^{n-k+1}=1^{n}\cdot 2^{n-1}\cdot 3^{n-2}\cdots (n-1)^{2}\cdot n^{1}.$

前幾項的超階乘為：

　
: 1, 2, 12, 288, 34560, 24883200, ... （OEIS 數列 A000178）

#### 另一種定義

柯利弗德・皮寇弗在他的書 _Key to Infinity_ 定義了另一個超階乘，寫作 $n\mathrm {S} \!\!\!\!\!\;\,{!}$ （ $n\mathrm {S} \!\!\!\!\!\;\,{!}$ 實際上應該是！和 S 重疊在一起）： $n\mathrm {S} \!\!\!\!\!\;\,{!}=n^{(4)}n$ (4), 表示 hyper4，使用高德納箭號表示法即 $n\mathrm {S} \!\!\!\!\!\;\,{!}=(n!)\uparrow \uparrow (n!)$ 。這個數列：

　
: $1\mathrm {S} \!\!\!\!\!\;\,{!}=1$

　
: $2\mathrm {S} \!\!\!\!\!\;\,{!}=2^{2}=4$

　
: $3\mathrm {S} \!\!\!\!\!\;\,{!}=6\uparrow \uparrow 6=6^{6^{6^{6^{6^{6}}}}}$ ，讀作 6 個 6 重冪。

　
: $4\mathrm {S} \!\!\!\!\!\;\,{!}=(4!)\uparrow \uparrow (4!)=24\uparrow \uparrow 24$ = ${\begin{matrix}{24_{}^{24^{{}^{.\,^{.\,^{.\,^{24}}}}}}}\\\end{matrix}}$ ，一直寫 24 個 24，讀作 24 個 24 重冪。

### 質數階乘

**質數階乘**是所有小於或等於該數且大於或等於 2 的質數的積，自然數 $n$ 的**質數階乘**，寫作 $n\#$ 。

目前質數階乘只能用遞迴方式定義，因為尚未找到一個能用基本函數表示所有質數的函數或一條包含所有質數的曲線

一般情況下質數階乘定義為：

　
: $n\#=\prod _{i=1}^{\pi (n)}p_{i}=p_{\pi (n)}\#$

其中， $\pi (n)$ 是質數計數函數，小於或等於某個實數 $n$ 的質數的個數的函數 $\leq n$ 。

### 自然數階冪

**階冪**也稱**疊冪**或者**重冪**記作 $n^{!}$ （感嘆號！寫在自然數的右上角），它的定義是將自然數 1 至 $n$ 的數由大到小作冪指數重疊排列，數學定義如下：

　
: $n^{!}=n^{{(n-1)}^{!}}=n_{}^{(n-1)^{{(n-2)}^{.\,^{.\,^{.\,^{{3}^{{2}^{1}}}}}}}}$

其中 $n\geq 1$ ，前幾項的重冪數為：

1 , 2 , 9 , 262144 , ... （OEIS 數列 A049384）

第 5 個重冪數是一個有 183231 位阿拉伯數字組成的超大自然數，其值約為 $6.20606987866\times 10^{183230}$

另外一種定義則是每個階冪都先取一次階乘：

　
: : $n!^{{(n-1)!}^{!}}=n!_{}^{(n-1)!^{{(n-2)!}^{.\,^{.\,^{.\,^{{3!}^{{2!}^{1!}}}}}}}}$

　
: 前幾個階乘階冪為：

　
: 1, 2, 36, 48708493958471199415506599153950129703565945470976, ... （OEIS 數列 A073581）

　
: 第 5 個階乘階冪值已大於 $10^{10^{50}}$ ，其值約為 $4.3056\times 10^{1.01274\times 10^{50}}\approx 10^{10^{50.00549705084703}}$

二次階冪：

　
: : $n^{!!}=n^{{!}^{2}}={n^{{!}{(n-1)^{{!}{{(n-2)}^{{!}{{.}^{{.}^{{.}^{3^{{!}{2^{{!}{1^{!}}}}}}}}}}}}}}}$

　
: 前幾個二次階冪為：

　
: 1, 2, 81...

　
: 第 4 個階乘階冪值已大於 $10^{438}$ ，其值約為 $7.975\times 10^{438}$ 。

相應地， $m$ 次階冪定義如下：

　
: $n^{{!}^{m}}=n^{{!}^{(m-1)}{(n-1)}^{!^{m}}}={n^{{!^{(m-1)}}{(n-1)^{{!^{(m-1)}}{{(n-2)}^{{!^{(m-1)}}{{.}^{{.}^{{.}^{3^{{!^{(m-1)}}{2^{{!^{(m-1)}}{1^{!^{(m-1)}}}}}}}}}}}}}}}}$

其中 $n$ ， $m\geq 1$ ，且 $n,m\in Z$ 。

### 倒數階乘

倒數階乘是指所有小於及等於該數的正整數之倒數的積，其值與階乘的倒數相同：

　
: $\prod _{k=1}^{n}{\frac {1}{k}}={\frac {1}{n!}}\quad \forall n\geq 1$

其無窮級數收斂在 e：

　
: $\sum _{n=0}^{\infty }\prod _{k=1}^{n}{\frac {1}{k}}=e$

考量階乘可以表示為連續的伽瑪函數，則有

　
: $\int _{-1}^{\infty }{\frac {dx}{x!}}\,=\int _{0}^{\infty }{\frac {dx}{\Gamma (x)}}\,\approx 2.80777024,$

這個值又稱為弗朗桑－羅賓遜常數。

## 符號史

* 瑞士數學家歐拉（Euler, L.）於 1751 年用大寫字母 $M$ 表示 $m$ 階乘 $M=1\cdot 2\cdot 3\cdot \cdots \cdot m$ 。
* 義大利數學家魯菲尼（Ruffini, P.）在 1799 年出版的方程式著述中，用小寫字母 $\pi $ 表示 $m$ 階乘。
* 德國數學家高斯（Gauss, C.F）於 1818 年則用 $\Pi (n)$ 表示 _n_ 階乘。
* 用符號 ${\underline {\mid n}}$ 表示 $n$ 階乘的方法起源於英國，尚不能確定其創始人，1827 年，由雅來特（Jarrett）的建議得以流行，現代有時亦用此階乘符號。
* 現在通用的階乘符號 $n!$ 是法國數學家克拉姆（Kramp, C.）於 1808 年最先提出來的，後經德國數學家、物理學家格奧爾格・歐姆（Ohm, M.）等人的倡議而流行起來，直用到現在。

## 參見

* 伽瑪函數
* 斯特靈公式
* 階乘倒數
* 排列組合
* 威爾遜定理

## 註釋

## 參考文獻