この計算ツールでできること
このツールは、ある値 x に対して関連する4つの量を計算します。階乗 x!、二重階乗 x!!、そしてそれぞれの自然対数 ln(x!) と ln(x!!) です。「関数」のプルダウンから計算したい量を選び、x の値を入力すれば、結果がすぐに表示されます。計算結果は無次元のため、単位や単位換算は一切不要です。
使い方
まず関数(x!、ln(x!)、x!!、ln(x!!))を選び、「変数 x」に値を入力して実行してください。整数の場合、x! と x!! は古典的な組合せ論の定義に従います。さらに、実数(非整数)の入力にも対応しています。この場合はガンマ関数を用いるため、たとえば \(0.5! = \sqrt{\pi}/2\) となります。負の整数はガンマ関数の極にあたり、階乗は定義されません。
計算式の解説
階乗はガンマ関数を通じて実数へと拡張され、$$x! = \Gamma(x+1)$$ と表されます。二重階乗は1つおきの項を掛け合わせたもので、偶数 \(n\) では \(n\cdot(n-2)\cdot\cdots\cdot 2\)、奇数 \(n\) では \(n\cdot(n-2)\cdot\cdots\cdot 1\) となり、基本値として \(0!! = 1\)、\((-1)!! = 1\) が定められています。すべての実数 \(x\) を1つの閉じた式で表すと次のとおりです:$$x!! = 2^{\frac{x}{2}+\frac{1-\cos\pi x}{4}}\,\pi^{\frac{\cos\pi x - 1}{4}}\,\Gamma\!\left(\tfrac{x}{2}+1\right)$$非常に大きな引数の場合、本ツールはオーバーフローを避けるために対数ガンマ関数を使って対数空間で計算します:$$\ln(x!) = \text{lgamma}(x+1)$$
計算例
関数 = x!!、\(x = 6\) と設定してみましょう。6 の二重階乗は \(6\cdot 4\cdot 2 = 48\) です。ln(x!!) に切り替えると \(\ln(48) \approx 3.8712010109\) が返ります。同様に、\(x = 5\) で x! を選ぶと \(1\cdot 2\cdot 3\cdot 4\cdot 5 = 120\) となり、5 の ln(x!) は \(\ln(120) \approx 4.7874917428\) です。
よくある質問
なぜ対数版が用意されているのですか? 階乗は非常に速く増大し、\(x \approx 1.7\times 10^{308}\) あたりで通常の浮動小数点数はオーバーフローしてしまいます。対数で出力することで、天文学的に大きな引数も正確に扱えます。
x に小数を入力できますか? はい。非整数の \(x\) にはガンマ関数による一般化が用いられ、整数値の間をなめらかに補間します。
負の x はどうなりますか? 負の非整数はガンマ関数を通じて計算できますが、負の整数は極にあたり、階乗・二重階乗ともに定義されません。