階乗

数学において自然数 ** の階乗**（かいじょう、）***' とは、[[1]] から  までの全ての自然数の[[総乗|積]]のことである。例えば、
:<math>6! = 6 \times 5 \times 4 \times 3 \times 2 \times 1 = 720</math>
である。[[空積]]の規約の下  と定義する。

階乗は数学の様々な場面に出現するが、特に[[組合せ論]]、[[代数学]]、[[解析学]]などが著しい。階乗の最も基本的な出自は  個の相異なる対象を1列に並べる方法（対象の[[置換 (数学)|置換]]）の総数が  通りであるという事実である。

階乗の定義は、最も重要な性質を残したまま、非整数を引数とする函数に[[#連続変数への補間|拡張]]することができる。そうすれば解析学における著しい手法などの進んだ数学を利用できるようになる。

== 定義 ==
いくつか同値な条件により定義することが可能である。
* <math>n!= \textstyle\prod\limits_{k=1}^n k = n \times \left( n-1 \right) \times \cdots \times 3 \times 2 \times 1</math>
*[[再帰的定義|再帰的な定義]]
*: <math>n! = \begin{cases}
1, &(n=0) \\
n \times \left(n-1\right)! &(n>0)
\end{cases}</math>
*[[微分]]に関する「」を用いた定義
*: <math>n! = \frac{d^n}{dx^n} x^n \quad ( n \geq 0 )</math>
* ''n''! = ( ''n'' 元集合の[[置換 (数学)|置換]]の総数 )

上記の何れの定義においても、
:<math>0!=1</math>
となることが織り込み済みである（最初の定義では「[[零項積| 0 項の積]]は 1 と定める」という規約によって）。このように定義する理由は:

など様々に挙げることができる。

より進んだ数学においては、引数が非整数の場合にも階乗函数を定義することができる（[[#連続変数への補間|後述]]）。そういった一般化された定義のもとでの階乗は[[関数電卓]]や、[[Maple]] や [[Mathematica]] などの[[数学ソフトウェア]]で利用できる。

=== プログラミング言語における階乗 ===
多くのプログラミング言語において、再帰的な定義を利用し、[[プロシージャ]]の[[再帰呼び出し]]を用いた階乗の実装が可能である。

以下は[[C言語]]での例である。例示するコードでは<code>unsigned long long</code>型を使用しているが、<code>unsigned long long</code>型では小さな階乗（21!）でも[[算術オーバーフロー|オーバーフロー]]してしまうため、大きな階乗については[[任意精度演算]]による実装を検討すべきである。

<syntaxhighlight lang="c">
unsigned long long factorial(unsigned int n)
{
    if (n > 0)
         return n * factorial(n - 1);
    return 1; // 0! == 1
}
</syntaxhighlight>

== 組合せ論 ==

階乗を含む公式は数学の多くの分野に現れるが、階乗のおおもとの出自は[[組合せ論]]にある。相異なる  個の対象の[[順列]]（-順列）の総数は  通りである。

階乗はしばしば「順番を無視する」という事実を反映するものとして[[分母]]に現れる。古典的な例としては  個の元から  個の元を選ぶ[[組合せ (数学)|組合せ]]（-組合せ）の総数が挙げられる。このような組合せは順列から得ることができる。実際、-順列の総数
:<math>n^{\underline k}=n(n-1)(n-2)\cdots(n-k+1)</math>
において、順番のみが違う（-組合せでは違いが無視される）-順列が  通りずつ存在するから、-組合せの総数は
:<math>\frac{n^{\underline k}}{k!} = \frac{n(n-1)(n-2)\cdots(n-k+1)}{k(k-1)(k-2)\cdots1}</math>
となる。この数は、二項冪  における  の係数となることから、[[二項係数]] <math>\tbinom{n}{k}</math> とも呼ばれる。

[[代数学]]に現れる階乗にはいくつも理由があるが、既述の如く[[二項定理|二項展開]]の係数として現れたり、ある種の演算の において[[置換 (数学)|置換]]による平均化を行うなど、組合せ論的な理由で現れるものもある。

[[微分積分学]]においても階乗は例えば[[テイラー級数]]の分母として現れるが、これは冪函数  の  階導函数が  であることを補正する定数である。[[確率論]]でも階乗は用いられる。

階乗は数式操作にも有効である。例えば  の -順列の総数を
:<math>n^{\underline k}=\frac{n!}{(n-k)!}</math>
と書けば、（この数値を計算することを考えれば効率が悪くなるが）二項係数の対称性
:<math>\binom{n}{k} = \frac{n^{\underline k}}{k!} = \frac{n!}{(n-k)!k!} = \frac{n^{\underline{n-k}}}{(n-k)!} = \binom{n}{n-k}</math>
を見るには都合がよい。

== 数論における階乗 ==

階乗は[[数論]]にも多くの応用を持つ。特に  は  以下の全ての[[素数]]で整除されねばならない。このことの帰結として、 が[[合成数]]となる[[必要十分条件]]は
:<math>(n-1)!\equiv 0 \pmod n</math>
が満たされることである。より強い結果として[[ウィルソンの定理]]は
:<math>(p-1)!\equiv -1 \pmod p</math>
が  が素数であるための必要十分条件であることを述べる。

[[ルジャンドルの公式]]は  の素因数分解に現れる  の重複度が
:<math>\textstyle\sum\limits_{i=1}^{\lfloor \log_p n \rfloor} \left\lfloor \dfrac{n}{p^i} \right\rfloor</math>
であることを示す。これは 
:<math>\frac{n - s_p(n)}{p-1}</math>
に等しくなる。ただし、 は  の 進展開の係数の和である。

 が素数となる  は  のみである。 の形の素数は[[階乗素数]]と呼ばれる。

 より大きな階乗は全て[[偶数]]である（これらは明らかに因数  を持ち、 の倍数である）。同様に、 より後の階乗は  の倍数（ と  を因数に持つ）であり、十進展開の。

=== ブロカールの問題 ===

ブロカールの問題とは、
:<math>n!+1 = m^2</math>
を満たす  は存在するか、という問題である。2015年9月現在、これを満たす  の組は
:(4, 5), (5, 11), (7, 71)
しか見つかっていない。[[ABC予想]]が真であれば、解は有限個しかないことが、Marius Overholt により示されている。

== 階乗の解析学 ==
=== 階乗の逆数和 ===
階乗の[[逆数]]の総和は[[収束級数]]
:<math>\sum_{n=0}^{\infty} \frac{1}{n!} = \frac{1}{1} + \frac{1}{1} + \frac{1}{2} + \frac{1}{6} + \frac{1}{24}  + \frac{1}{120} + \dotsb = e</math>
を与える（[[ネイピア数]]を参照）。この和は[[無理数]]となるけれども、階乗に適当な正整数を掛けて和が有理数となるようにすることができる。例えば、
:<math>\sum_{n=0}^{\infty} \frac{1}{\left( n+2 \right) n!} = \frac{1}{2}+\frac{1}{3}+\frac{1}{8}+\frac{1}{30}+\frac{1}{144}+\dotsb=1.</math>
この級数の値が 1 となることを見るには、その[[部分和]]が 1 &minus; 1/(''n''+2)! であることを確認すればよい。したがって、階乗数の全体はを成さない。

=== 階乗の増大度 ===

[[画像:Log-factorial.svg|300px|thumb|階乗の自然対数  のグラフをプロットしたもの。このグラフは一見して適当に選び出した  に対する[[一次函数]]で近似できそうにも思えるが、そのような直観は誤りである。]]
 が増えるにつれて、階乗  は  を変数とする任意の[[多項式函数]]あるいは[[指数函数]]よりも早く増加する（ただし、[[二重指数関数]]よりは遅い）。

 の近似式の多くは[[自然対数]]
:<math>\log n! = \sum_{x=1}^n \log x</math>
であることを利用する。最も単純に得られる  の近似値を評価する式は、上記の式と以下の積分:
:<math>\int_1^n \log x \, dx \leq \sum_{x=1}^n \log x \leq \int_0^n \log (x+1) \, dx</math>
によって与えられる。積分を評価すれば
:<math>n\log \left( \frac{n}{e} \right)+1 \leq \log n! \leq \left( n+1 \right) \log \left( \frac{n+1}{e} \right) + 1</math>
を得る。これは、[[ランダウの記号]]を用いれば  のオーダーは  であることを言っているのであり、この結果は[[ソート|ソートアルゴリズム]]の[[計算量]]を測るのに重要な役割を果たす。さて上記の  の評価から
:<math>e \left( \frac{n}{e} \right)^n \leq n! \leq e \left( \frac{n+1}{e} \right)^{n+1}</math>
が分かる。実用上はより弱い結果だがより評価のしやすいものを用いることもある。上記の式から簡単な評価をしてみると、任意の  に対して  であり、また  のとき  であることなどが分かる。

大きな  に対して  をよりよく評価するには[[スターリングの公式]]
:<math>n!\sim \sqrt{2\pi n} \left( \frac{n}{e} \right)^n</math>
を利用する。（ここで <math>\sim</math> は両辺の比が  に収束することを表す。）実は任意の  に対して
:<math>\sqrt{2\pi n} \left( \frac{n}{e} \right)^n < n! < \sqrt{2\pi n} \left( \frac{n}{e} \right)^n e^{1/12n}</math>
であることが証明できる。

 の別な近似は[[シュリニヴァーサ・ラマヌジャン]]により
:<math>\log n! \approx n\log n - n + \frac{\log \left[ n \left\{ 1+4n \left( 1+2n \right) \right\} \right]}{6} + \frac{\log \pi} {2}</math>
したがって
:<math>n! \sim \sqrt{2\pi n} \left( \frac{n}{e} \right)^n
\left( 1 + \frac{1}{2n} + \frac{1}{8n^2} \right)^{1/6}</math>
と与えられている。この近似の誤差は、スターリングの公式よりも小さい。

== 連続変数への補間 ==
=== ガンマ関数とパイ関数 ===

[[画像:Generalized factorial function.svg|325px|thumb|階乗函数は負の整数を除く任意の実数に対するものに一般化することができる。例えば
* ,
* ,
* .
]]

負の整数を除けば、階乗関数は非整数の値に対しても定義することができるが、そのためには[[解析学]]の道具立てが必要である。そのように階乗の値を「補間」して得られるものの一つが'''[[ガンマ函数]]'''  である（ただし引数が 1 だけずれる）。これは負の整数を除く任意の複素数  に対して定義される。 の実部が正である場合には
:<math>\Gamma(z)=\int_0^\infty t^{z-1} e^{-t}\, dt</math>
で与えられる。ガンマ函数と階乗との関係は、任意の自然数  に対して
:<math>n!=\Gamma(n+1)</math>
が成り立つことである。[[レオンハルト・オイラー|オイラー]]のもともとの定義式は
:<math>\Gamma(z)=\lim_{n\to\infty}\frac{n^zn!} {\prod\limits_{k=0}^n (z+k)}</math>
である。[[カール・フリードリヒ・ガウス|ガウス]]の導入した別表記として、負でない実数  に対する'''パイ函数'''  は
:<math>\Pi(z)=\int_0^\infty t^z e^{-t}\,dt</math>
を満たす。ガンマ函数との関係は
:<math>\Pi(z) = \Gamma(z+1)</math>
である。非負整数  に対し
:<math>\Pi(n) = n!</math>
が成り立つことを思えば、こちらのほうが階乗を補完した函数としては適していると言えるかもしれない。さてパイ函数は階乗が満たすのと同じ漸化式
:<math>\Pi(z) = z\Pi(z-1)</math>
を、しかし定義される限り任意の複素数  に対して満たす。事実としてはこれはもう漸化式ではなくて[[函数等式]]と見るべきものであるが。この函数等式をガンマ函数に関するものに書き換えれば
:<math>\Gamma(n+1)=n\Gamma(n)</math>
となる。階乗を延長したものがパイ函数なのだから、定義可能な任意の複素数  に対して
:<math>z! := \Pi(z)</math>
と定めることは可能である。これらの補間函数を用いて[[半整数]]における階乗の値を定めるならば、例えば
:<math>\Gamma\left( \frac{1}{2} \right) = \left( -\frac{1}{2} \right)! = \Pi \left( -\frac{1}{2} \right) = \sqrt{\pi}</math>
が成り立ち、さらに自然数  に対して
:<math>\Gamma \left( \frac{1}{2}+n\right ) = \left( -\frac{1}{2} +n \right)! = \Pi \left( -\frac{1}{2} + n \right) = \sqrt{\pi} \prod_{k=1}^n \frac{2k-1}{2} = \frac{(2n)!}{4^n n!} \sqrt{\pi} = \frac{(2n-1)!}{2^{2n-1}(n-1)!} \sqrt{\pi}</math>
が得られる。例えば
:<math>\Gamma \left( 4.5 \right) = 3.5! = \Pi \left(3.5 \right) = \frac{1}{2} \cdot \frac{3}{2} \cdot \frac{5}{2} \cdot \frac{7}{2} \sqrt{\pi} = \frac{8!}{4^4 4!} \sqrt{\pi} = \frac{7!}{2^7 3!} \sqrt{\pi} = \frac{105}{16} \sqrt{\pi} \approx 11.63.</math>
同様に  に対して
:<math>\Gamma \left( \frac{1}{2} - n \right) = \left( -\frac{1}{2} - n \right)! = \Pi \left( -\frac{1}{2} - n \right) = \sqrt{\pi} \prod_{k=1}^n \frac{2}{1-2k} = \frac{(-4)^n n!}{(2n)!} \sqrt{\pi}</math>
が成り立ち、例えば
:<math>\Gamma \left( -2.5 \right) = (-3.5)! = \Pi \left( -3.5 \right) = \frac{2}{-1} \cdot \frac{2}{-3} \cdot \frac{2}{-5} \sqrt{\pi} = \frac{(-4)^3 3!}{6!} \sqrt{\pi} = -\frac{8}{15} \sqrt{\pi} \approx -0.9453.</math>

パイ函数が殆ど全ての複素数値に対して定義される階乗の延長として唯一のものでないことはもちろんである。それは定義域において[[解析函数|解析的]]としても同じことである。しかし、普通はこれが階乗の複素函数への最も自然な延長であるものと考える。例えば、[[ボーア・モレルップの定理]]はガンマ函数が  かつ函数等式  を満たす、ガウス平面の全域で[[有理型函数|有理型]]かつ実軸の正の部分でとなるような唯一の函数であることを述べる。同様の主張はパイ函数に関しても、函数等式  に関して述べられる。

そうは言うものの、解析的函数論の意味で恐らくより簡明な、階乗の値を補間する複素函数は存在する。例えば[[ジャック・アダマール|アダマール]]の「ガンマ」函数はガンマ函数とは異なり[[整函数]]になる。

オイラーはまた非整数の階乗に対する近似無限乗積
:<math>\begin{align}
n! = \Pi(n) &= \prod_{k=1}^\infty \left( \frac{k+1}{k} \right)^n \!\! \frac{k}{n+k} \\
  &= \left[ \left( \frac{2}{1} \right)^n \frac{1}{n+1} \right] \left[ \left( \frac{3}{2} \right)^n \frac{2}{n+2} \right] \left[ \left( \frac{4}{3} \right)^n \frac{3}{n+3} \right] \cdots
\end{align}</math>
についても考察している。これは上記のガンマ函数に関する公式と同じものと見做すことができる。しかしこの公式は収束が遅く、実用的な意味でパイ函数やガンマ函数の値を計算することに利用することはできない。

=== ガウス平面上での挙動 ===
[[画像:Factorial05.jpg|400px|thumb|複素変数に対する階乗の絶対値と偏角を、単位長さ間隔で ,  の範囲で描いた等高線。太くなぞった等高線は  である。]]
複素変数の階乗の値をガンマ函数による表現を通して評価することができる。絶対値  と偏角  を用いて
:<math>f=\rho \exp(i\varphi)=(x+iy)!=\Gamma(x+iy+1)</math>
と書けば、絶対値一定曲線  と偏角一定曲線  を等値線として格子を描くことができる。一定間隔で引いた等値線の間にさらに細かく等値線を引けば、それが補間で得られる値である。極である負の整数においては絶対値と偏角が定義できず、またその周辺で等値線は密になる。


 に対してはテイラー展開
:<math>z!=\sum_{n=0}^{\infty} g_n z^n</math>
が利用できる。この展開のより多くの項は、[[Sage (数式処理システム)|Sage]]のような[[数式処理システム|計算機代数システム]]で計算できる。


=== 階乗の近似 ===

大きな値に対する階乗の値の近似を[[ディガンマ函数]]の積分を通じて[[連分数]]表示を用いて記述できる。この方法は[[トーマス・スティルチェス|スティルチェス]]によるもので、 と書けば  は
:<math>P(z) = p(z) + \log(2\pi)/2 - z + \left( z+ \frac{1}{2} \right) \log(z)</math>
で、スティルチェスはこの第一項  の連分数展開
:<math>p(z)=\cfrac{a_0}{z+
\cfrac{a_1}{z+
\cfrac{a_2}{z+
\cfrac{a_3}{z+\ddots}}}}
</math>
を与えた。

さて、任意の複素数  に対して  あるいは  とするのは誤りであり、実際には実軸の近くの特定の範囲の  でしか成り立たない（一方  である。引数の実部は大きいほど、虚部はより小さくなければならない。しかし逆の関係式  は原点を除くガウス平面の全域で有効である。ただし実軸の負の部分では収束性は弱くなる（特異点の周辺ではどのような近似もよい収束性を得ることが難しい）。一方、 または  の範囲では上記の六つの係数は  精度の複素数に対してその階乗の近似値を得るのに十分である。より高い精度でより多くの係数を計算するには rational QD-scheme ([[H. Rutishauser]]'s [[QD algorithm]])を用いる。

=== 負の整数に対する拡張不能性 ===
関係式  を使えばある整数に対する階乗をそれより「小さい」整数の階乗から計算できる。この関係式を逆に使えば、「大きい」整数に対して与えられた階乗から
:<math>(n-1)! = \frac{n!}{n}</math>
と計算することも可能である。しかし注意すべきは、これでは負の整数に関する階乗を計算することはできないということである（この式に従って  を計算するには零除算が必要となりこれ以下の負の整数における階乗の値の計算は不可能となる）。このことはガンマ函数においても同じことで、ガンマ函数は負の整数を除くガウス平面の全域において定義できるにも拘らず、負の整数における値だけは定義することができない。

== 一般化 ==
=== 多重指数記法 ===
[[多重指数]] <math>\alpha = (\alpha_1, \alpha_2,\ldots,\alpha_n)</math> に対し階乗は、
:<math>\alpha! = \alpha_1! \cdot \alpha_2! \cdots \alpha_n!</math>
と定義できる。これは例えば、多変数関数の展開に使われる。

=== デデキント環への拡張 ===
[[マンジュル・バルガヴァ]]は階乗を一般の[[デデキント環]]上で定義し、いくつかの古典的な問題を解決するために用いた。それらの階乗は整数ではなく、[[イデアル]]となる。

== 階乗に類似する概念 ==


=== 二重階乗 ===


階乗の類似として、'''二重階乗 ''' は自然数  に対し一つ飛ばしに積を取る。二重階乗  は階乗  の二回[[反復合成写像|反復合成]]  とは異なる。
:<math>(2n)!!=(2n)(2n-2)\cdots(2)=2^n n!</math>
:<math>(2n+1)!!=(2n+1)(2n-1)\cdots(1)=\frac{(2n+1)!}{(2n)!!}</math>
奇数  に対する二重階乗の最初の方の値は
:（）
偶数  に対する二重階乗の値の最初の方は
:（）
で与えられる。

負の奇数にも拡張される（<math>\left( -(2n+1) \right)!! = {(-1)^n} / {(2n-1)!!}</math>
）。また、複素数値への拡張として、以下が知られている。
:<math>z!! = 2^{ \left[ 1+2z- \cos (\pi z) \right] /4}\pi^{\left[ \cos (\pi z)-1 \right]/4} \Gamma \left( 1+ \frac{1}{2} z \right)</math>

=== 多重階乗 ===
より一般に'''多重階乗''' (''multifactorial'') は、連続した整数の積である通常の階乗 、一つ飛ばしの積である二重階乗 、二つ飛ばしの積である'''三重階乗''' ***' または ***'、三つ飛ばしの'''四重階乗''' ***' または **** などを総称して言う。

;三重階乗の例
:（）
:（）
:（）

;四重階乗の例
:（）
:（）
:（）
:（）

;定義
:一般の **-重階乗**  は正整数  に関して帰納的に
::n!_k= \begin{cases}
 1 &\text{if }n=0, \\
 n &\text{if }0
と定義できる。これと異なる定義として

; 定義
::z!^{(k)} = z(z-k)\cdots (k+1)
= k^{(z-1)/k} \left( \frac{z}{k} \right) \left( \frac{z-k}{k} \right) \cdots \left( \frac{k+1}{k} \right)
= k^{(z-1)/k} \frac{\Gamma \left( \frac{z}{k} +1 \right)}{\Gamma \left( \frac{1}{k} +1 \right)}.
とするものもある。

### 階乗冪

自然数  に対して、 の -順列の総数  は  から始めて上から  個の連続する整数の積を取る（ある意味で不完全な階乗とも呼べる）階乗の類似物であった。これを**下降階乗冪**と呼ぶ。その反対に  から始めて下から  個の連続する整数の積をとったもの  を**上昇階乗冪**といい、これら二つを総称して階乗冪と呼ぶ。ただし一般に自然数に限らず（実数や複素数などに値をとる） を変数として
:\begin{align} 
x^{\underline{k}} & =\prod_{i=0}^{k-1}(x-i),\\
x^{\overline{k}} &=\prod_{i=0}^{k-1}(x+i)
\end{align}
を考えることが多い。明らかに自然数  に対して
:n^{\underline{k}} = \frac{n!}{(n-k)!},\quad n^{\overline{k}}=\frac{(n+k-1)!}{(n-1)!},
:n!= n^{\underline{n}} = 1^{\overline{n}}.
また一般に実数  に対して
:x^{\underline{0}} = x^{\overline{0}}=1
と定義する（空積も参照）が  のときもそうであるかは規約による（例えば上記の関係式  は  のとき  で矛盾しない。0^0も参照）。

### 素数階乗

**素数階乗** (*Primorial*)  は最初の -個の素数の総乗
:n\# = \prod_{i=1}^n p_i
である。（）

これは、素数が無限に存在するという命題の証明に用いられることがある。

### 超階乗

 の**超階乗**（*superfactorial*）は、階乗を入れ子に拡張したものである。ドル記号$を用いて書かれる。またLawrence Hollomが開発した超階乗配列表記は階乗をベースとした配列表記で従来の階乗や超階乗より遥かに大きな増加速度を持つ。
; 定義
:n\$={}^{n!}n! = \underbrace{n!^{n!^{\scriptstyle n!^}_{n!}
nが3以上になると、非常に大きい値になる。

これとは異なる種類の超階乗の定義がある。  は、**超階乗**（*superfactorial*）を定義した。例として、4の超階乗は次のようになる。
:\operatorname{sf} (4)=1! \times 2! \times 3! \times 4!=288.
一般的にこの定義における超階乗は下の式で定義される。

;定義
:\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} \cdot 4^{n-3} \cdots (n-1)^2 \cdot n^1.
これは以下と同値:
:\mathrm{sf}(n) = \prod_{0 \le i 
最初のいくつかの値は、次のようになる：
: 
超階乗は、複素数値にも拡張できる。その結果はバーンズのG関数と呼ばれる。定義は次のようになる。
:G(z+1)=(2\pi)^{z/2} \exp \left(- \frac{z+z^2(1+\gamma)}{2} \right) \, \prod_{k=1}^{\infty} \left\{ \left( 1+\frac{z}{k} \right)^k \exp \left( \frac{z^2}{2k} -z \right) \right\}
自然数に対しては、以下が成り立っている。
:G(n+2)= \mathrm{sf}(n)=\begin{cases}
0 &\text{if }n=-1,-2,\dots \\
\prod_{i=0}^n i! &\text{if }n=0,1,2,\dots
\end{cases}

### hyperfactorial

**ハイパー階乗** (*hyperfactorial*) は、以下で定義される。
:H(n)= \prod_{k=1}^n k^k= 1^1 \cdot 2^2 \cdot 3^3 \cdots (n-1)^{n-1}\cdot n^n
これはとても大きくなっていく。最初のいくつかの値はつぎの通りである。
:1, 4, 108, 27648, 86400000, ……
ハイパー階乗は定義域を複素数にまで拡張できる。それはK函数と呼ばれ、以下で定義される。
:K(z)=(2\pi)^{(-z+1)/2} \exp\left[\begin{pmatrix}
z \\
2
\end{pmatrix}+\int_0^{z-1} \ln(t!)\,dt\right].
自然数  に対し、次が成り立つ。
:K(n+1)=1^1\, 2^2\, 3^3\, 4^4\, \cdots n^n.

### 階冪

以下、↑をクヌースの矢印表記とする。

階乗が連続する整数を順に「乗」じるのに対し、連続する整数を順に冪にする演算として階「冪」 (*exponential factorial*)  （感嘆符は右肩に添字として書く）は
:n^! = \begin{cases}
1 &(n=0) \\
n^}}}} = n \uparrow \left(n-1 \right) \uparrow \left(n-2 \right) \uparrow \cdots \cdots\uparrow3 \uparrow2 \uparrow1
であり、最初の5つの値は次のようになる。
:（）
 の値は十進展開で183231桁にも及ぶきわめて大きな自然数である。
:5^! = 5^{4^!} = 5^{262144} \approx 6.2 \times 10^{183230}.
これ以降は、グーゴルプレックス 10^{10^{100}} より遥かに大きくなる（ を計算すると、およそ 6 ≒ 10 となる）。

全ての自然数の exponential factorial の逆数の総和は、
:\sum_{n=1}^{\infty} \frac{1}{n^!} =1.611114925808376736\underbrace{111\cdots111}_{\text{183213 digits}}272243\cdots
となる。この数は、超越数であり、リウヴィル数である。

また、**高次** exponential factorial が定義される。例として、**二次** exponential factorial は、
:\begin{align}
n^{!!} = n^
  &= \left( n^! \right)^{\left((n-1)^!\right)^{\left((n-2)^!\right){.^{.^{.^}}}}}}}\\
  &= n^! \uparrow (n-1)^! \uparrow(n-2)^! \uparrow \cdots \cdots \uparrow 3^! \uparrow 2^! \uparrow 1^!
\end{align}
となる。一般の -次 exponential factorial は
:\begin{align}
n^}}}} \\
&= n^{!^{(m-1)}} \uparrow (n-1)^{!^{(m-1)}} \uparrow \cdots \cdots \uparrow 2^{!^{(m-1)}} \uparrow 1^{!^{(m-1)}} \end{align}
で与えられる。ただし、 は自然数である。

## 歴史
 個の相異なる対象を1列に並べる方法の総数が  通りであるということは、少なくとも12世紀にはインドの学者によって知られていた。は1677年にへの応用として階乗を記述した。再帰的な手法による記述の後、Stedman は（独自の言葉を用いて）階乗に関しての記述を与えている：

感嘆符(!)を用いた、この "" という表記は1808年にクリスチャン・クランプによって発明された。

## 注
### 注釈

### 出典

## 参考文献
* ドナルド・E・クヌース、ロナルド・L・グレアム・オーレン・パタシュニク 『コンピュータの数学』 有澤誠・ほか訳、共立出版、1993年8月。ISBN 4-320-02668-3 : 原著 
* Keith B. Oldham他 『関数事典（CD-ROM付）』 河村哲也監訳、朝倉書店、2013年12月、ISBN 978-4-254-11136-1。
* 
* 
* 
* 
* 
* 

## 関連項目
* 巨大数
* 総乗
* 交互階乗
* マンジュル・バルガヴァ
* 完全順列 (subfactorial function)
* 階乗の交代和
* ファクトリオン
* 
* 三角数：階乗の加法的な対応物（ から  までの自然数の和）
* 階乗進法

## 外部リンク

* 
* 
* 
*http://factorielle.free.fr
*階乗の計算