こんにちは、なかむら(う)です。

In message "[ruby-dev:29710] Bignum#to_s(10) broken"
    on Oct.30,2006 17:44:19, <usa / garbagecollect.jp> wrote:
| -	j = j * 241L / 800;

ところで、この 241/800 はlog10(2)の近似値だと思うのですが、こ
の値であるのには何か深い理由があるのでしょうか?
この式だけ見て考えると、要求される近似値としては、
 * log10(2) よりは大きくて、
 * オーバーフローを遅らせるため分子が小さいほうがよい
のように思えます。

この観点から考えると、例えば 146/485 の方が近似値としては優れ
ている上に分子が小さいですし、87/289 や 28/93 なども、近似度
は 146/485 にわずかに及ばないながらも 241/800 よりはマシです
し、分子もぐっと小さくなります。


それでは。
-- 
U.Nakamura <usa / garbagecollect.jp>