■1000!は10^250より大きいか? (その1)
1000!は10^250よりもはるかに大きい数ですが、どれくらい巨大な数であるのか、その桁数を求めてみましょう。
logn!=log1+log2+・・・+logn
=Σlogx
log(1000!)=5912.13
底を10に変換(常用対数)すると
log10(1000!)=2567.61
1000!の桁数は2568であることがわかります。
===================================
【1】階乗の漸近評価(スターリングの公式)
ところで、階乗n!の近似値を与える公式として有名なスターリングの公式があります.
n! 〜 √(2πn)n^ne^(-n)
スターリングの公式では,n=8のとき相対誤差は約1%ですが,nが大きくなるほど相対誤差は小さくなります.
まず,スターリングの公式を誘導してみましょう.
y=logxのグラフを幅が1の長方形に分割していくと,xが十分大きければ相対的に和の間隔が小さくなるので,和は積分に置き換えられます.
Σlogx≒∫(1,n)logtdt
logxの原始関数は置換積分よりxlogx−x+Cと計算され,区間[1,n]ですから,
∫(1,n)logtdt=nlogn−n+1
となります.
1000log1000−1000+1=5908.76
===================================
log(n−1)!<∫(1,n)logtdt<logn!
より,n!の下からの評価は
∫(1,n)logtdt<logn!
したがって,
n!>exp(nlogn−n+1)=en^ne^(-n)=e(n/e)^n
が得られます.
また,上からの評価は
logn!<∫(1,n+1)logtdt
より,
n!<exp((n+1)log(n+1)−n)=(n+1)^(n+1)/e^n
したがって,
n!=n(n−1)!<nexp(nlogn−n+1)=en(n/e)^n
が得られます.
e(n/e)^n<n!<en(n/e)^n
===================================
logn!=nlogn−n+o(n)
としても大体了解されますが,もっと正確に近似すると
∫(1,n)logtdt<logn!<∫(1,n+1)logtdt
より
nlogn−n<logn!<(n+1)log(n+1)−n
ここで,スターリングの公式
n! 〜 √(2πn)(n/e)^n
で与えられるような漸近挙動を得るには,もっと注意深い解析が必要になることがわかります。
したがって,両辺の相加平均に近い
(n+1/2)logn−n
でlogn!を近似できることになり,
∫(1,n)logtdt
=log1+log2+・・・+logn−1/2logn+δ
であること
また,ウォリスの公式:
√π〜(n!)^2 2^(2n)/(2n)!√n
より,結局,スターリングの公式
n!〜√(2πn)n^ne^(-n)
にたどりつきます.
(1000+1/2)log1000−1000+1/2・log(2π)=5912.13
===================================