エクセルには階乗(例えば5に対して5!=1×2×3×4×5を計算する関数)を計算する
fact()という関数があります。
10!を計算したければ「=fact(10)」と入力すればいいわけです。
170!くらいまでならこれで計算できます。
それ以上の数の階乗(たとえば200!)を計算するときは工夫が必要になります。
階乗を拡張した関数にガンマ関数Γ()というものがあります。
自然数nについて
Γ(n+1)=n!
の関係があります。
エクセルにはガンマ関数の自然対数を計算する関数「GAMMALN」があります。
これはfactより大きい数について計算してくれるのでこれを使います。
A1セルに入力された値の階乗を計算したいとき、まず、「GAMMALN(A1+1)」で
A1の階乗の自然対数を計算します。
これを10の自然対数「LN(10)」で割ると底の変換公式から階乗の常用対数が分かります。
それを式で描くと (GAMMALN(A1+1)/LN(10)) です。
よって 10^(GAMMALN(A1+1)/LN(10)) で階乗が計算できます。しかしA1が大きいときに表現できなくなるので
指数表記に直します。すると以下のようになります。
これをA1以外の適当なセルにコピペしてください。
A1の値の階乗を指数表記してくれます。
fact()という関数があります。
10!を計算したければ「=fact(10)」と入力すればいいわけです。
170!くらいまでならこれで計算できます。
それ以上の数の階乗(たとえば200!)を計算するときは工夫が必要になります。
階乗を拡張した関数にガンマ関数Γ()というものがあります。
自然数nについて
Γ(n+1)=n!
の関係があります。
エクセルにはガンマ関数の自然対数を計算する関数「GAMMALN」があります。
これはfactより大きい数について計算してくれるのでこれを使います。
A1セルに入力された値の階乗を計算したいとき、まず、「GAMMALN(A1+1)」で
A1の階乗の自然対数を計算します。
これを10の自然対数「LN(10)」で割ると底の変換公式から階乗の常用対数が分かります。
それを式で描くと (GAMMALN(A1+1)/LN(10)) です。
よって 10^(GAMMALN(A1+1)/LN(10)) で階乗が計算できます。しかしA1が大きいときに表現できなくなるので
指数表記に直します。すると以下のようになります。
=10^((GAMMALN(A1+1)/LN(10))-INT((GAMMALN(A1+1)/LN(10)))) | ×10^ | =INT((GAMMALN(A1+1)/LN(10))) |
これをA1以外の適当なセルにコピペしてください。
A1の値の階乗を指数表記してくれます。
※コメント投稿者のブログIDはブログ作成者のみに通知されます