なぜ0の階乗は1なのか?計算の基本公式からPython実装まで完全解説
なぜ0の階乗は1なのか?計算の基本公式からPython実装まで完全解説について押さえておきたい ポイントを分かりやすく解説いたします。
階乗の概念は、正の整数だけの単純な掛け算にとどまりません。高等数学では様々な拡張や近似手法が存在します。
二重階乗($n!!$)
1つ飛ばしで掛け算を行う計算を「二重階乗」と呼びます。
・$n$ が奇数の場合:$7!! = 7 \times 5 \times 3 \times 1 = 105$
・$n$ が偶数の場合:$6!! = 6 \times 4 \times 2 = 48$
物理学の量子力学や球面調和関数の展開などで頻繁に姿を現す計算法です。
ガンマ関数($\Gamma$ 関数):実数・複素数への拡張
「小数の階乗はどう計算するのか?」という問いに答えたのが、スイスの大数学者レオンハルト・オイラーです。オイラーは積分を用いて階乗を連続的な関数へと拡張したガンマ関数を導入しました。
$$\Gamma(z) = \int_0^\infty t^{z-1} e^{-t} dt$$
自然数 $n$ に対して $\Gamma(n) = (n - 1)!$、すなわち $\Gamma(n + 1) = n!$ が成立します。これにより、$0.5!$($\Gamma(1.5)$)のような小数の階乗も計算可能となり、$\left(\frac{1}{2}\right)! = \frac{\sqrt{\pi}}{2}$ という美しい結果が得られます。なお、負の整数においてはガンマ関数の分母が 0 に収束するため、値は未定義(発散)となります。
スターリングの公式(Stirling's approximation)
巨大な $n$ に対する $n!$ の近似値を求める強力な関係式が「スターリングの公式」です。
$$n! \approx \sqrt{2\pi n} \left(\frac{n}{e}\right)^n$$
統計力学のエントロピー計算や、情報理論における大規模データの情報量推定において、計算困難な階乗を高速に見積もるための極めて強力な武器として活用されています。