在數學中，正整数的階乘（）是所有小於等於該數的正整數的積，計為，例如5的階乘表示為，其值為120：

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

1808年，基斯頓·卡曼引進這個表示法：，符號表示連續乘積，亦即。階乘亦可以遞迴方式定義：，。除了自然數之外，階乘亦可定義于整個實數（負整數除外），其与伽瑪函數的关系为：

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

歷史 
早在12世紀，印度學者就已有使用階乘的概念來計算排列數的紀錄。1677年時，法比安·斯特德曼使用來解釋階乘的概念。在描述遞迴方法之後，斯特德將階乘描述為：「現在這些方法的本質是這樣的：一個數字的變化數包含了所有比他小的數字（包括本身）的所有變化數……因為一個數字的完全變化數是將較小數字的變化數視為一個整體，並透過將所有數字的完整變化聯合起來。」，其原文如下：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.
而符號是由法國數學家克里斯蒂安·克蘭普在1808年使用。

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

用連乘積符號可表示為：

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

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

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

可以得到：

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

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

性質 
可质因子分解为，如。

計算 

計算時，若不太大，普通的科學計算機都可以計算，能夠處理不超過（古高爾）數值的計算機可以計算至，而雙精度浮點數的計算機則可計算至。

當很大時，可用斯特林公式估計：

更精确的估计是：

其中

部分函數值

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

函数和函数 

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

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

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

另外，我们也可利用此式以计算任意大于-1的实数的阶乘：

複數的階乘 

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

令為：

右圖顯示了幾個模（絕對值）與輻角的幾個等級，圖表的繪製範圍為, 個單位長。較粗的鉛直線為輻角值為的等值線。

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

在時，可使用泰勒級數來計算：

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

其中，為歐拉-馬斯刻若尼常數
為黎曼ζ函數
部分計算機代數的系統存在可以直接產生這些展開式係數的語法，例如SageMath。

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

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

將階乘寫為，其中為：
 
Stieltjes給出了其連分數值：
 
前幾項係數為：
{| class="wikitable"
|-
! 
! 
|-
| 0
| 
|-
| 1
| 
|-
| 2
| 
|-
| 3
| 
|-
| 4
| 
|-
| 5
| 
|-
| 6
| 
|}

負整數的階乘 
負整數的階乘可透過階乘的遞迴定義逆推而得：

但由於在此定義下計算負一的階乘會出現除以零（即），因此無法直接給出負整數的階乘。

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

矩陣的階乘具有如下性質：
。
並且，其中，是單位矩陣、是一個方陣，同時是一個非奇異矩陣。

換句話說，即矩陣為單位矩陣的純量倍，其階乘為，例如

對於一個可對角化矩陣其階乘為：

其中，和是的特徵值，分別為和，其中，

變化

定义扩展 

階乘的定義可推廣到複數，其与伽瑪函數的关系为：

。

伽瑪函數滿足，

另一種定义扩展是阿達馬伽瑪函數，但由於其不在所有實數上皆能滿足階乘的遞迴定義，只有在正整數上滿足階乘的遞迴定義因此比較少被拿出來討論。

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

遞進/遞降階乘 
遞進階乘：
遞降階乘：

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

廣義的雙階乘
無視上述定義的因為即使值的，雙階乘為奇數可擴展到最實數和複數的注意到，當是一個正的奇數則：

獲得的表達接受一個以上公式和並表示在條件發生的階乘函數的既可以看出（使用乘法定理）等同於一個給定在這裡。

定義為所有複數除負偶數。

比較上式與的原始定義，廣義的雙階乘在的計算上須包含，即

其中 

使用它的定義，半徑為的n維超球其體積可表示為：
 n=1,3,5,...
 n=2,4,6,...

多重阶乘 
被称为的重阶乘，定义为：

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

四次階乘
所謂的四次阶乘（又称四重阶乘） 不是 ，而是 ，前幾個四次階乘為
1, 2, 12, 120, 1680, 30240, 665280, ....

它也等於

過階乘 
hyperfactorial（有時譯作過階乘）寫作，其定義為：

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

超階乘 
1995年，尼爾·斯洛恩和西蒙·普勞夫定義了超階乘（superfactorial）為首個階乘的積。即。一般來說

前幾項的超階乘為：
1, 2, 12, 288, 34560, 24883200, ...

另一種定義
柯利弗德·皮寇弗在他的書Key to Infinity定義了另一個超階乘，寫作（ 為!和S重疊在一起）：(4),表示hyper4，使用高德納箭號表示法即。這個數列：

，读作6个6重幂。
 = ，一直写24个24，读作24个24重幂。

質數階乘

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

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

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

其中, 是質數計數函數，小於或等於某個實數的質數的個數的函數。

自然数阶幂

阶幂也称叠幂或者重幂记作（感叹号!写在自然数的右上角），它的定义是将自然数1至的数由大到小作幂指数重叠排列，数学定义如下：

其中，前几项的重幂数为：

1 , 2 , 9 , 262144 , ... 

第5个重幂数是一个有183231位阿拉伯数字组成的超大自然数，其值約為

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

前幾個阶乘阶幂為：
1, 2, 36, 48708493958471199415506599153950129703565945470976, ... 
第5个阶乘阶幂值已大於，其值約為

二次阶幂：

前幾個二次阶幂為：
1, 2, 81...
第4个阶乘阶幂值已大於，其值約為。

相应地，次阶幂定义如下：

其中，，且。

倒數階乘 

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

其無窮級數收斂在e：

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

這個值又稱為。

反階乘 

反階乘是階乘的反函數，用於求解指定的數是哪個數的階乘。例如120的反階乘為5，因為5的階乘為120。反階乘可以透過泰勒級數或反伽瑪函數來評估與計算。

反階乘可以用了推算某個數大約是多少的階乘。

由於階乘與伽瑪函數之間的關聯，反階乘也可以透過反伽瑪函數近似公式來估計：
 
因此，反階乘也可以寫成如下的渐近分析形式：

其中是朗伯W函数。這個公式是利用史特靈公式求逆得到的，因此也可以展開為漸近級數。

符号史 

瑞士数学家欧拉（Euler, L.）于1751年用大写字母表示阶乘。
意大利数学家鲁菲尼（Ruffini, P.）在1799年出版的方程著述中，用小写字母表示阶乘。
德国数学家高斯（Gauss, C.F）于1818年则用表示n阶乘。
用符号表示阶乘的方法起源于英国，尚不能确定其创始人，1827年，由雅来特（Jarrett）的建议得以流行，现代有时亦用此阶乘符号。
现在通用的阶乘符号是法国数学家克拉姆（Kramp, C.）于1808年最先提出来的，后经德国数学家、物理学家格奥尔格·欧姆（Ohm, M.）等人的倡议而流行起来，直用到现在。

參見
伽瑪函數
斯特靈公式
階乘倒數
排列组合
威尔逊定理

註釋

參考文獻

^

阶乘与二项式主题
组合数学
J
伽玛及相关函数
乘法