階乗と二重階乗、スターリングの公式

≫ 二重階乗の説明は記事の後半にあります

階乗 Factorial

 正の整数 n について

\[n!=n\,(n-1)\,(n-2) \cdots 2 \cdot 1, \quad 0!=1 \tag{1}\]

を n の階乗(factorial)と定義します。たとえば、
 
\[\begin{align*}3!=&\,3 \cdot 2 \cdot 1=6\\[6pt]
5!=&\,5 \cdot 4 \cdot 3 \cdot 2 \cdot 1=120\end{align*}\]
のように計算します。階乗は数学のあらゆる場面で登場します。特に確率論による組合せやオイラー積分(ガンマ関数)、関数の級数展開などの計算で活躍します。

階乗の再帰的定義

 プログラミングなどで階乗を計算させるには再帰的定義を用いると簡単です。

\[n!=\left\{\begin{matrix}1 \qquad \quad \; \qquad(n=0)\\
n(n-1)!\qquad(n\geq1)\end{matrix}\right.\]

 つまり n = 0 の場合だけ特別に 0! = 1 の値を与えて、n > 1 については For文などのループ処理で
 
\[\begin{align*}1!=&1\\[6pt]
2!=&2 \cdot 1!=2\\[6pt]
3!=&3 \cdot 2!=6\\[6pt]
4!=&4 \cdot 3!=24\end{align*}\]
といった具合に計算させます。

xn の導関数による定義

 たとえば x3 を順に微分していくと、
 
\[\begin{align*}&\frac{d(x^3)}{dx}=3x^2\\[6pt]
&\frac{d^2(x^3)}{dx^2}=3 \cdot 2x\\[6pt]
&\frac{d^3(x^3)}{dx^3}=3 \cdot 2 \cdot 1=3!\end{align*}\]
となります。一般に階乗は xn の n階微分によって

\[n!=\frac{d^n}{dx^n}\,x^n\]

と定義することができます。

階乗の近似式

 スターリングの公式
 
\[\Gamma (x+1)\sim \sqrt{2\pi x}x^xe^{-x}\]
を用いると

\[\Gamma (n+1)=n!\sim \sqrt{2\pi n}\left ( \frac{n}{e} \right )^n\]

という階乗についての近似式を得ることができます。この近似は n が大きな値をとるほど精度がよくなります。
 

二重階乗 Double Factorial

 正の整数 n について、

  \(n!!=n\,(n-2)\,(n-4) \cdots 3 \cdot 1\) ( n が奇数のとき)
  \(n!!=n\,(n-2)\,(n-4) \cdots 4 \cdot 2\) ( n が偶数のとき)
  \(0!!=(-1)!!=1\) ( n が 0, -1 のとき)

n の二重階乗(double factorial)と定義します。たとえば、
 
\[7!!=7 \cdot 5 \cdot 3 \cdot 1=105\]
のように計算します。二重階乗はガンマ関数やベッセル関数など特殊関数の計算などで用います。

二重階乗を階乗で表します

 二重階乗は普通の階乗と指数の組合せで表すこともできます。

\[(2m)!!=2^m m!, \qquad (2m-1)!!=\frac{(2m)!}{2^m m!}\]

 証明は簡単です:
 
\[\begin{align*}(2m)!!=&2m\,(2m-2)\,(2m-4) \cdots 4 \cdot 2\\[6pt]
=&2^m\,m\,(m-1)\,(m-2) \cdots 2 \cdot 1=2^m m!\end{align*}\]
 また、$(2m)!!=2^m m!$ の両辺に (2m - 1)!! をかけると、
 
\[(2m)!!(2m - 1)!!=2^m m!(2m - 1)!!\]
 左辺は $(2m)!$ となるので、
 
\[(2m)!=2^m m!(2m - 1)!!\]
 したがって、
 
\[(2m-1)!!=\frac{(2m)!}{2^m m!}\]
が証明されました。たとえば、$m=4$ としてみると、
 
\[7!!=\frac{8!}{2^44!}=\frac{8\cdot 7\cdot 6\cdot 5}{16}=105\]
となります。

コメント

  1. yumyam より:

    二重階乗を階乗で表します。のところで、
    (2m−1)!! = 2*m/(2^m*m!) とありますが、これは誤りで、
    (2m−1)!! = (2*m)!!/(2*m)! さらに、
    = 2^m*m!/(2*m)! ですよね。

    • Blog Cat より:

      御指摘ありがとうございます。
      誤記を訂正すると同時に、説明不足な箇所は加筆しておきました。
      何しろ一人で書いているので、サイトのあちこちに誤記があると思われます。
      今後も誤りを指摘していただけると幸いです。よろしくお願いします。

Blog Cat にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください