続・100乗の階乗の桁数

http://d.hatena.ne.jp/tomerun/20081109/1226243698 の続き。


前回は、2の100乗の階乗が10の何乗くらいになるかを見積もってから、10進表記の桁数ごとに分けて積を見積もっていきました。

ですが、10進に直して考えなくても、2進数のまま、2^n〜2^(n+1)までをグループ化してやるともっと良さそう、ということに気づきました。こうすると、前回これでいいのかと思っていた大きいところを切り捨てるという近似をしなくて済む。
2^{100}! = 2^{0}\times(2^{1}\times(2^{1}+1))\times(2^{2}\times(2^{2}+1)\times(2^{2}+2)\times(2^{2}+3))\times\text{...}\times2^{100}
後は前回と同じ方針で、各グループの両端の相乗平均でそのグループ内を近似するという方針で計算していくとよいです。


この方法は、2の100乗だけでなく任意の数の100乗に適用できます。というわけで、「Nの100乗の階乗の桁数」は、途中の計算を省略すると
(log_{10}N)\times\frac{(199N-201)N^{100}}{2(N-1)^{2}}
となりました。


N=2 とすると、これは
(log_{10}2)\times98.5\times2^{100} \approx 2^{105}
となります。前回求めた 3\times10^{31}とほとんど同じ。