フェルミ推定で数学

ちょっと前に出されていたこの問題。

2の100乗の階乗が何桁になるかを暗算で計算するにはどうするか


というのをだいぶ前にお風呂でやってたことがあって、こないだ思い出してついったに書いたんだけど、連休ヒマな人は考えてみると楽しいと思う。


いま流行りのフェルミ推定ですかね。

http://d.hatena.ne.jp/nowokay/20081101#1225487419

解答編がアップされています。http://d.hatena.ne.jp/nowokay/20081109#1226228851


ですがこの解答編の方法は、スターリングの公式を持ち出してきたあたり、ちょっと"推定"の域を超えているというか、知らないとできないやり方だなあという気がしました。もっとフェルミ推定っぽく考えてみた方法を書いておきます。
(実際のところは、僕がスターリングの公式をすっかり忘れていたというだけのことなんですけど)


「2の100乗」をXとします。
【追記】TeX記法がたまに動いてないみたいで、数式部分がうまく表示されていないことがあります。経験則からいくと、しばらく待てば復活する。

1.Xはどのくらいの大きさか

これは、リンク先にもあるように、対数を取ることで31桁だと分かります。
さらに、log_{10}2^{100} \approx 30.1 なので、31桁の数の中でもかなり小さい方のはず。
というわけで、思い切って X \approx 10^{30} としてみましょう。

2.Xの階乗を桁ごとに分割する

X! \approx 1\times2\times3\times...\times10^{30} = (1\times2\times...\times9)\times(10\times11\times...\times99)\times...
と、「1桁の数×2桁の数×…30桁の数」というふうに階乗の積を分割します。

3.分割した各桁の積を評価する

n桁の数を全部かけた値を X_n とします。X_1 = 1\times2\times...\times9\text{, }X_2 = 10\times11\times...\times99 など。
これで、
X! \approx \prod_{n=1}^{30}X_n\text{  ...(1)}
となりました。さて、X_n を評価します。


n桁の数は 9\times10^{n-1} 個あって、それらの相乗平均を A_n とします。相乗平均というのは、全部の数をかけて、かけた数乗根を取ったものなので、X_n = A_n^{9\times10^{n-1}} とできます。


A_n がどのくらいになるかですが、n桁の数の両端である、10^{n-1}10^{n} の相乗平均、すなわち 10^{n-\frac{1}{2}} で良いんじゃないかなー。このへんいい加減です。

すると、
X_n = A_n^{9\times10^{n-1}} \approx \left(10^{(n-\frac{1}{2})}\right)^{9\times10^{n-1}} = 10^{9\times(n-\frac{1}{2})\times10^{n-1}} \text{  ...(2)}

4.評価したそれぞれを掛け合わせる

(1)と(2)から、
X! \approx \prod_{n=1}^{30}10^{9\times(n-\frac{1}{2})\times10^{n-1}} = 10^{9\times\sum_{n=1}^{30}(n-\frac{1}{2})\times10^{n-1}}

このΣの中身、nが1増えるごとに10倍以上になっていくので、nが大きいところの項だけ取れば十分。最後の2項だけ取ると、
\sum_{n=1}^{30}(n-\frac{1}{2})\times10^{n-1}\\ \approx (30-\frac{1}{2})\times10^{30-1} + (29-\frac{1}{2})\times10^{29-1}\\ = 29.5\times10^{29} + 28.5\times10^{28}\\ \approx 32\times10^{29}


なので、
X! \approx 10^{9\times32\times10^{29}} \approx 10^{300\times10^{29}} = 10^{3\times10^{31}}

5.結論

というわけで、X! \approx 10^{3\times10^{31}} となりました。2の100乗の階乗の桁数は 3\times10^{31} くらいです。


おお、こんないい加減な近似でもちゃんと一緒の答えになってくれた。ただ、最初のステップで「大きい方を捨てる」というかなり怪しげな近似をしているので、本当にこれでいいのかなあ。