少し前2の累乗の桁数を対数の近似値を使って計算する問題で、誤差が桁数にどう影響を及ぼすのか考えました。
今回は問題としてもよくある、3の累乗について同様に考察してみます。次の問題を考えましょう。
解き方は以下の通り。
とおき,各辺の常用対数を取ると
となり、結局24桁と分かりました。
2の累乗のときと同様、
というのは近似値なのですから、累乗の指数によっては誤った桁数が計算されるでしょう。今回も、どんなときなら安全なのか調べてみます。まず、
であるとしましょう。各辺をm倍して
2の累乗のときと同様で、
すると、k≦maかつmb≦k+1 すなわち
mb≦k+1≦ma+1 ……★
であるときにはk+1桁です。前回同様、これは十分条件であって、これが不成立だからと言って必ず桁数を求められない、ということではありません。さて、
ということですから、a=0.47705、b=0.47715とおいて、さっきの★を考えれば
0.47715m ≦ k+1 ≦0.47705m + 1
です。これが成立するkが存在すれば誤差なく3の累乗の桁数を計算できるのです。なお、このときの桁数はk+1です。
例えば……m=415のときは上の不等式は
198.01725≦ k+1 ≦198.97575 となり、これを満たすkは存在しません。(ここまでの話の通り、だからと言って絶対に桁を正しく計算できない、ということではありませんが)実際、パソコンで調べるとこのとき桁数に誤差が生じています。
2の累乗のときと同様、Pythonで調べてみるとmが2000以下のとき桁数に誤差が生じるのは次の指数のときです。
415
568
677
721
830
874
939
983
1027
1092
1136
1180
1201
1245
1289
1333
1354
1398
1442
1463
1486
1507
1551
1595
1616
1639
1660
1704
1725
1748
1769
1792
1813
1857
1878
1901
1922
1945
1966
1987
今回もどうやら教員が試験に使いそうな指数はたまたまありません。結局底が2か3のときはあまり気にしなくてもトラブルは起こらなそうです。おめでとうございます!