公式の証明・導出
常用対数を用いた桁数の求め方の原理
関連単元: 数学II 指数関数・対数関数
証明する内容
$N$を正の整数とします。常用対数$\log_{10}N$を計算した結果が、
$\log_{10}N = k+f \qquad (k\text{は整数}, \ 0\leqq f<1)$
の形になった(つまり、$k$が$\log_{10}N$の整数部分、$f$が小数部分)とします。このとき、$N$はちょうど$(k+1)$桁の整数になります。
これが、常用対数を使って桁数を求める原理です。直感的には、「実際に大きな数$N$を書き並べなくても、$\log_{10}N$という1つの数の整数部分を調べるだけで、$N$が何桁の数かが分かってしまう」ということを意味しています。
証明
ステップ1:桁数と10のべき乗の関係を確認する
正の整数$N$が「$(k+1)$桁の整数である」ということを、不等式で言い換えることから始めます。
十進法では、$(k+1)$桁の整数とは、いちばん小さいものが$1$の後に$0$が$k$個並んだ数($10^k$)、いちばん大きいものが$0$の後に$9$が$(k+1)$個並んだ数($10^{k+1}-1$)である、$10^k$以上$10^{k+1}-1$以下の整数のことです。たとえば$k=2$のとき、$3$桁の整数は$100$($=10^2$)以上$999$($=10^3-1$)以下の整数です。
したがって、正の整数$N$について、次の同値関係が成り立ちます。
$N\text{が}(k+1)\text{桁の整数である} \iff 10^k \leqq N \leqq 10^{k+1}-1$
さらに、$N$は整数なので、$N\leqq10^{k+1}-1$であることと、$N<10^{k+1}$であることは同じ意味です($N$が整数である以上、$10^{k+1}$未満の最大の整数は$10^{k+1}-1$だからです)。よって、
$N\text{が}(k+1)\text{桁の整数である} \iff 10^k \leqq N < 10^{k+1} \quad \cdots ①$
が成り立ちます。
ステップ2:①の不等式の各辺の常用対数をとる
①の不等式
$10^k \leqq N < 10^{k+1}$
の各辺に、底が$10$の対数をとります。常用対数関数$y=\log_{10}x$は、底の$10$が$1$より大きいので、単調増加関数です(つまり、$x$の値が大きいほど$\log_{10}x$の値も大きくなり、大小関係の向きは変わりません)。したがって、
$\log_{10}(10^k) \leqq \log_{10}N < \log_{10}(10^{k+1})$
が成り立ちます。ここで、$\log_{10}(10^k)=k$、$\log_{10}(10^{k+1})=k+1$($10$を底とする対数に$10$のべき乗を入れると、指数がそのまま答えになるためです)なので、
$k \leqq \log_{10}N < k+1 \quad \cdots ②$
が得られます。
ステップ3:②の意味を読み取る
②の不等式$k\leqq\log_{10}N ステップ1と②をあわせると、次の同値関係が完成します。 $N\text{が}(k+1)\text{桁の整数である} \iff 10^k\leqq N<10^{k+1} \iff \log_{10}N\text{の整数部分が}k\text{である}$ したがって、 $N\text{が}(k+1)\text{桁の整数である} \iff \log_{10}N\text{の整数部分が}k\text{である}$ が証明できました。言い換えると、$\log_{10}N$の整数部分を求めて、それに$1$を足せば、$N$の桁数が分かるということです。 この原理を使って、$2^{100}$がとてつもなく大きい数であるにもかかわらず、その桁数を求めてみましょう。$\log_{10}2=0.3010$とします。 累乗の法則$\log_a M^r=r\log_a M$を使うと、 $\log_{10}(2^{100}) = 100\times\log_{10}2$ 与えられた近似値を代入します。 $= 100\times0.3010 = 30.10$ この値の整数部分は$30$です。実際、$30\leqq30.10<31$が成り立っています。ステップ3で証明した原理より、$\log_{10}(2^{100})$の整数部分が$30$であることから、 $2^{100}\text{の桁数} = 30+1 = 31 \ (\text{桁})$ であることが分かります。 検算:実際に$2^{100}$を計算すると、 $2^{100} = 1267650600228229401496703205376$ となります。この数を先頭から数えると、確かに$31$桁の整数になっていることが確認できます(このような桁数の巨大な数を、実際に掛け算を繰り返して求めるのがどれほど大変か、そして常用対数を使えばたった1回のかけ算($100\times0.3010$)で桁数が分かってしまうことのありがたさが実感できると思います)。 この証明の核心は、「$(k+1)$桁の整数である」という条件を「$10^k\leqq N<10^{k+1}$」という不等式に翻訳し、対数関数が単調増加であることを使って、その不等式の各辺に対数をとっても大小関係が保たれることを利用した点です。桁数という、一見すると対数と直接関係なさそうな概念が、「$10$を底とする対数の整数部分」という形にきれいに対応付けられることが分かります。この考え方は、桁数を求める問題だけでなく、ある数の最高位の数字を求める問題(小数部分$f$に着目する)にも応用され、常用対数の実用的な使い道の中心となっています。ステップ4:具体例で確認する(2^100の桁数)
この証明のポイント