フェルミ推定で数学
ちょっと前に出されていたこの問題。
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桁だと分かります。
さらに、 なので、31桁の数の中でもかなり小さい方のはず。
というわけで、思い切って としてみましょう。
2.Xの階乗を桁ごとに分割する
と、「1桁の数×2桁の数×…30桁の数」というふうに階乗の積を分割します。
3.分割した各桁の積を評価する
n桁の数を全部かけた値を とします。 など。
これで、
となりました。さて、 を評価します。
n桁の数は 個あって、それらの相乗平均を とします。相乗平均というのは、全部の数をかけて、かけた数乗根を取ったものなので、 とできます。
がどのくらいになるかですが、n桁の数の両端である、 と の相乗平均、すなわち で良いんじゃないかなー。このへんいい加減です。
すると、
4.評価したそれぞれを掛け合わせる
(1)と(2)から、
このΣの中身、nが1増えるごとに10倍以上になっていくので、nが大きいところの項だけ取れば十分。最後の2項だけ取ると、
なので、
5.結論
というわけで、 となりました。2の100乗の階乗の桁数は くらいです。
おお、こんないい加減な近似でもちゃんと一緒の答えになってくれた。ただ、最初のステップで「大きい方を捨てる」というかなり怪しげな近似をしているので、本当にこれでいいのかなあ。