- 締切済み
階乗
siegmundの回答
- siegmund
- ベストアンサー率64% (701/1090)
普通に考えるなら,catamaran さんと FM-8 さんのご指摘のようにガンマ関数でしょう. 任意の複素数 z に対して (1) Γ(z)=∫{0~∞} x^(z-1) e^(-x) dx Re(z)>0 を解析接続して得られる関数がガンマ関数です. FM-8 さんは積分範囲を -∞~∞ とされていますが, 上の 0~∞ が正しい範囲です. 上の積分は z の実数部 Re(z) が正の時しか収束しませんので, そうでない z に対してはときは適当な手段で拡張する必要があり それが解析接続です. (2) Γ(1) = 1 (3) Γ(z+1) = zΓ(z) を簡単に示すことができますので,自然数 n に対しては (4) Γ(n+1) = n! ということになります. 階乗とは n が1つだけずれています(FM-8 さんの「モドキ」). 多少古いドイツ流の本では (5) Π(z) = Γ(z+1) というパイ関数を見ることもあります. これを使うなら (6) Π(n) = n! ということになります. z がゼロまたは負の整数のときにはΓ(z)は極になっています (つまり,値は+∞あるいは-∞). スターリングの公式 (7) Γ(z) ~ √(2π) e^(-z) z^[z-(1/2)] は |z| が大きいときの近似式(漸近式)です(z≠負の実数). 具体的に小数の階乗あるいはΓ関数を計算するなら catamaran さん方式がよろしいでしょう. HOGERA3 さんのご回答は階乗でなくてベキ乗についての話ですね.
関連するQ&A
- 0!(ゼロの階乗)について
高校数学にでてくる階乗の問題についてですが、1!(1の階乗)は1というのはわかるんですが、0!が1というのがどうもわかりません。0!=1というのが証明出来る方どうかお願いします。
- ベストアンサー
- 数学・算数
- VB2005での階乗を出力する方法
VB2005で階乗を出力したいと思っていますが どのようにすれば良いのかわかりません。 階乗を出力と言うのは、計算結果ではなく数字の右上に小さい数字を付けたものを出力したいということです。 何か良い方法はありませんか? また、FlexGridに出力することは可能でしょうか? サンプルやヘルプを見ても分からなかったのでよろしければ教えて下さい。
- ベストアンサー
- Visual Basic