常用対数を用いた桁数と最高位の数の計算

更新日時 2021/03/07

常用対数の意味と応用例を紹介します。常用対数を使えば「2302^{30} の桁数を計算せよ」のような問題を解くこともできます。

目次
  • 常用対数とは

  • 常用対数を使って桁数を求める

  • 常用対数を使って最高位の数を求める

  • 気合いで計算するのが難しい例題

常用対数とは

常用対数とは,10 を底とする対数 log10N\log_{10}N のことです。例えば,

  • log10100=2\log_{10}100=2
  • log101000=3\log_{10}1000=3
  • log1010000=4\log_{10}10000=4

のように, 常用対数 log10X\log_{10}X1010 を何乗したら XX になるか?を表す数とも言えます。

常用対数を使って桁数を求める

常用対数を用いることで,大きな数の桁数を計算できます。

桁数を求めるための公式

正の整数 NNnn 桁の数
    10n1N<10n\iff 10^{n-1} \leq N < 10^n
    n1log10N<n\iff n-1\leq \log_{10}N < n

例えば,n=3n=3 などで確認するとわかりやすいです。

NN33 桁の数
    100N<1000\iff 100\leq N< 1000
    2log10N<3\iff 2\leq\log_{10} N<3

となります。2行目では,左側は等号つき不等号,右側は等号なし不等号です。2行目の各辺の常用対数を取ると3行目になります。

例題

N=230N=2^{30} の桁数を求めよ。ただし,log102=0.3010\log_{10}2=0.3010 として計算せよ。

解答

NN の常用対数を取ると,

log10230=30log102=9.030\log_{10}2^{30}=30\log_{10}2=9.030

よって,9log10230<109\leq \log_{10} 2^{30}< 10 なので桁数を求めるための公式より 2302^{30}1010 桁の数である。

別解(余談)

本筋からそれるが,2302^{30} くらいなら自力で計算できる。 210=10242^{10}=1024 は多くの人が覚えているだろう。よって 10003<230<200031000^{3} < 2^{30} < 2000^{3} となる。100031000^3200032000^31010 桁の数なので 2302^{30}1010 桁の数。

注: 210=10242^{10}=1024 はぜひ覚えておきましょう。特に情報系の人が喜ぶキリのいい数字です。

常用対数を使って最高位の数を求める

次はもう少し難しい常用対数の応用方法です。常用対数を使って最高位の数を計算できます。最高位の数とは,一番左側の数字です。例えば,3456734567 の最高位の数は 33 です。

NNnn 桁の数で最高位の数が aa
    a10n1N<(a+1)10n1\iff a\cdot 10^{n-1} \leq N < (a+1)\cdot 10^{n-1}
    n1+log10alog10N<n1+log10(a+1)\iff n-1+\log_{10}a\leq \log_{10}N < n-1+\log_{10}(a+1)

例えば,n=4,a=6n=4,\:a=6 などで確認するとわかりやすいです。

NN44 桁の数で最高位の数が 66
    6000N<7000\iff 6000 \leq N < 7000
    3+log106log10N<3+log107\iff 3+\log_{10} 6\leq \log_{10}N < 3+\log_{10}7

となります。

log10N\log_{10}N の整数部分が n1n-1 になります。つまり,小数部分を見れば最高位の数が分かるというわけです。

例題

N=230N=2^{30} の最高位の数を求めよ。ただし,log102=0.3010\log_{10}2=0.3010 として計算せよ。

解答1

さきほど計算したように,log10230=9.030\log_{10}2^{30}=9.030

小数部分 0.030.03log101=0\log_{10}1=0 より大きく log102=0.3010\log_{10}2=0.3010 より小さい。

つまり,9+log101log10230<9+log1029+\log_{10}1\leq \log_{10}2^{30} < 9+\log_{10}2

よって 109230<210910^{9}\leq 2^{30} < 2\cdot 10^9

つまり最高位の数は 11 である。

解答2

これくらいの計算は突破できる気合いが欲しい。

230=10243=10737418242^{30}=1024^3=1073741824 なので最高位の数は 11

気合いで計算するのが難しい例題

例題2

62006^{200} の桁数と最高位の数を求めよ。ただし,log102=0.3010\log_{10}2=0.3010log103=0.4771\log_{10}3=0.4771 として計算せよ。

さすがに 200200 乗ともなると気合いで計算するのは厳しいですね。

解答(桁数)

log106200=200(log102+log103)=155.62\log_{10}6^{200}\\ =200(\log_{10}2+\log_{10}3)\\ =155.62

よって,155log106200<156155\leq \log_{10}6^{200}< 156 より 101556200<1015610^{155}\leq 6^{200} < 10^{156}

よって 62006^{200}156156 桁である。

解答(最高位の数)

log106200\log_{10}6^{200} の小数部分は 0.620.62 である。

log104=2log102=0.6020\log_{10}4=2\log_{10}2=0.6020

log105=1log102=0.6990\log_{10}5=1-\log_{10}2=0.6990

より,155+log104log106200<155+log105155+\log_{10}4\leq \log_{10}6^{200}< 155+\log_{10}5

よって,4101556200<5101554\cdot 10^{155}\leq 6^{200} <5\cdot 10^{155}

つまり最高位の数は 44 である。

注:ちなみに 62006^{200} を実際に計算してみると,有効数字 44 桁で 4.268×101554.268\times 10^{155} となります。

小学生の頃,2のべき乗を休み時間の間ずっと計算して遊んだのを思い出します。