常用対数の意味と計算(桁数・最高位の数)

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

常用対数とは

常用対数

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

つまり,10x=N10^x=N を満たす xx のこと。

102=10010^2=100 であるので log10100=2\log_{10}100=2

103=100010^3=1000 であるので log101000=3\log_{10}1000=3

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

常用対数の計算

対数の性質

logaMN=logaM+logaN\log_aMN=\log_aM+\log_aN

logaMN=logaMlogaN\log_a\dfrac{M}{N}=\log_aM-\log_aN

logaMr=rlogaM\log_a M^r = r \log_a M  (rr は実数)

詳細は→対数(log)の定義・計算方法・便利な公式まとめ

log1012\log_{10}12 を計算してみよう。

まず対数の公式を使うと

log1012=log10(22×3)=log1022+log103=2log102+log103\begin{aligned} \log_{10}12 &= \log_{10} (2^2\times 3)\\ &=\log_{10}2^2+\log_{10}3\\ &=2\log_{10}2+\log_{10}3 \end{aligned}

ここで log1020.3010\log_{10}2\fallingdotseq 0.3010log1030.4771\log_{10}3\fallingdotseq 0.4771 を使うと,

2×0.3010+0.4771=1.07912\times 0.3010+0.4771=1.0791 となる。

常用対数表

常用対数表を使うこともあります。例えば log101.23\log_{10}1.23 を求めたいときは,

  1. 小数第一位までの値 1.21.2 の行を探し
  2. 小数第二位の値 33 の列を探し
  3. その行と列に対応する値 0.08990.0899 を読み取る

という手順で log101.230.0899\log_{10}1.23\fallingdotseq 0.0899 がわかります。 常用対数表

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

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

例えば,

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

となります。より一般に,以下の公式が成立します。

桁数を求めるための公式

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

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\leqq \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 はぜひ覚えておきましょう。特に情報系の人が喜ぶキリのいい数です。

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

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

例えば,

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

となります。より一般に以下の公式が成立します。

最高位の数を求めるための公式

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

n=4,a=6n=4,\:a=6 とするとさきほどの例になります。

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+log102 9+\log_{10}1\leqq \log_{10}2^{30} < 9+\log_{10}2

よって 109230<2109 10^{9}\leqq 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\begin{aligned} &\log_{10}6^{200}\\ &=200(\log_{10}2+\log_{10}3)\\ &=155.62 \end{aligned}

よって, 155log106200<156 155\leqq \log_{10}6^{200}< 156 より 101556200<10156 10^{155}\leqq 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+log105 155+\log_{10}4\leqq \log_{10}6^{200}< 155+\log_{10}5

よって, 4101556200<510155 4\cdot 10^{155}\leqq 6^{200} < 5 \cdot 10^{155}

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

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

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