「$2^{100}$ は何桁の数か?」── この問いに対して、実際に $2^{100}$ を計算する必要はありません。
常用対数を使えば、巨大な数の桁数も、極小な数の小数首位も、たった1行の不等式で判定できます。
なぜ常用対数で桁数がわかるのか、その原理を理解しましょう。
$2^{100}$ のような巨大な数の桁数を知りたいとき、実際に計算するのは不可能です。ここで活躍するのが常用対数($\log_{10}$)です。
まず、10の累乗と桁数の関係を確認しましょう。
| 数 | 値 | 桁数 | $\log_{10}$ の値 |
|---|---|---|---|
| $10^0$ | $1$ | 1桁 | $0$ |
| $10^1$ | $10$ | 2桁 | $1$ |
| $10^2$ | $100$ | 3桁 | $2$ |
| $10^3$ | $1000$ | 4桁 | $3$ |
| $10^n$ | $1\underbrace{00\cdots0}_{n\text{個}}$ | $(n+1)$ 桁 | $n$ |
この表から重要なパターンが見えてきます。$10^n$ は $(n+1)$ 桁の数です。では、$10^n$ と $10^{n+1}$ の間にある数、たとえば $10^{2.5}$ はどうでしょうか。
$10^2 = 100$(3桁)、$10^3 = 1000$(4桁)なので、$10^2 \leq N < 10^3$ を満たす $N$ はすべて3桁です。つまり、$\log_{10} N$ の整数部分が $2$ である数は、すべて3桁なのです。
正の整数 $N$ が $n$ 桁の数であるとは、$10^{n-1} \leq N < 10^n$ が成り立つことです。
両辺の常用対数をとると $n - 1 \leq \log_{10} N < n$ となります。
つまり、$\log_{10} N$ の整数部分が $n - 1$ ならば、$N$ は $n$ 桁の数です。
言い換えれば、桁数 = $\log_{10} N$ の整数部分 + 1 です。
たとえば、$\log_{10} 500 \fallingdotseq 2.699$ です。整数部分は $2$ なので、$500$ は $2 + 1 = 3$ 桁の数。確かにその通りです。
桁数とは「その数を表すのに何桁必要か」という情報です。$\log_{10} N$ はまさに「$N$ を10進法で表すのに必要な桁数」の目安を与えています。
コンピュータサイエンスの世界では、$\log_2 N$(底が2の対数)が「$N$ を2進法で表すのに必要なビット数」に対応します。対数は「情報量」を測る道具として、現代科学で広く使われています。
セクション1の考え方を公式にまとめましょう。
正の整数 $N$ が $n$ 桁の数であるとします。
$n$ 桁の最小値は $10^{n-1}$(例:3桁なら $100 = 10^2$)、$n$ 桁の最大値は $10^n - 1$(例:3桁なら $999$)です。
したがって、$N$ が $n$ 桁であることは次の不等式と同値です。
$$10^{n-1} \leq N < 10^n$$
$N > 0$ なので各辺の常用対数をとることができ、$\log_{10}$ は単調増加関数なので不等号の向きは変わりません。
$$n - 1 \leq \log_{10} N < n$$
正の整数 $N$ について、
$$N \text{ が } n \text{ 桁} \iff n - 1 \leq \log_{10} N < n$$
すなわち、$\log_{10} N$ の整数部分が $n - 1$ ならば、$N$ は $n$ 桁。
解法の手順:(1) 常用対数をとる → (2) 値を計算する → (3) 整数で挟む → (4) 桁数を読み取る
$\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ とするとき、$6^{50}$ の桁数を求めてみましょう。
Step 1:常用対数をとる
$$\log_{10} 6^{50} = 50 \log_{10} 6 = 50 \log_{10} (2 \cdot 3) = 50(\log_{10} 2 + \log_{10} 3)$$
Step 2:値を計算する
$$= 50(0.3010 + 0.4771) = 50 \times 0.7781 = 38.905$$
Step 3:整数で挟む
$$38 \leq 38.905 < 39$$
Step 4:桁数を読み取る
整数部分が $38$ なので、$6^{50}$ は $38 + 1 = 39$ 桁の整数です。
$\log_{10} N$ がちょうど整数値のとき、桁数の判定を誤りやすいです。
たとえば $\log_{10} N = 3$ のとき、$N = 10^3 = 1000$ なので $N$ は 4桁です。
✗ 誤り:「整数部分が 3 だから 3 桁」
✓ 正しい:「$n - 1 \leq \log_{10} N < n$ で $n - 1 = 3$ だから $n = 4$ 桁」
公式 $n - 1 \leq \log_{10} N < n$ では、左側の等号が成り立つのは $N = 10^{n-1}$ のときで、これは $n$ 桁の最小の数です。
$\log_{10} 2$ と $\log_{10} 3$ が与えられている場合、真数を $2$ と $3$ の積に分解する必要があります。
$6 = 2 \times 3$、$12 = 2^2 \times 3$、$15 = \dfrac{10}{2} \times 3$ のように、与えられた値で表せる形に変形しましょう。
✗ 誤り:$\log_{10} 5 = 0.5$(5は素数なので直接求められないと思い込む)
✓ 正しい:$\log_{10} 5 = \log_{10} \dfrac{10}{2} = 1 - \log_{10} 2 = 0.6990$
$0$ と $1$ の間の正の数、たとえば $0.00345$ は、小数第1位が $0$、小数第2位も $0$、小数第3位に初めて $0$ でない数字 $3$ が現れます。この「初めて $0$ でない数字が現れる位」を小数首位と呼びます。
桁数の判定と同じ発想で考えます。小数第 $k$ 位に初めて $0$ でない数字が現れる数とは、どのような範囲にある数でしょうか。
| 小数首位 | 数の範囲 | $\log_{10}$ の範囲 |
|---|---|---|
| 小数第1位 | $0.1 \leq N < 1$ | $-1 \leq \log_{10} N < 0$ |
| 小数第2位 | $0.01 \leq N < 0.1$ | $-2 \leq \log_{10} N < -1$ |
| 小数第3位 | $0.001 \leq N < 0.01$ | $-3 \leq \log_{10} N < -2$ |
| 小数第 $k$ 位 | $10^{-k} \leq N < 10^{-k+1}$ | $-k \leq \log_{10} N < -k+1$ |
桁数の問題では $10^{n-1} \leq N < 10^n$ から $n$ 桁とわかります。小数首位でも全く同じ構造です。
$10^{-k} \leq N < 10^{-k+1}$ のとき、$N$ は小数第 $k$ 位に初めて $0$ でない数字が現れます。
どちらも「$N$ がどの $10$ の累乗の間にあるか」を調べているだけです。常用対数はその判定を可能にする道具なのです。
$0 < N < 1$ のとき、
$$N \text{ は小数第 } k \text{ 位に初めて0でない数字が現れる} \iff -k \leq \log_{10} N < -k + 1$$
解法の手順は桁数と同じ:(1) 常用対数をとる → (2) 値を計算する → (3) 整数で挟む → (4) 小数首位を読み取る
$\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ とするとき、$\left(\dfrac{2}{3}\right)^{100}$ は小数第何位に初めて $0$ でない数字が現れるかを求めてみましょう。
Step 1:常用対数をとる
$$\log_{10} \left(\frac{2}{3}\right)^{100} = 100(\log_{10} 2 - \log_{10} 3)$$
Step 2:値を計算する
$$= 100(0.3010 - 0.4771) = 100 \times (-0.1761) = -17.61$$
Step 3:整数で挟む
$$-18 \leq -17.61 < -17$$
Step 4:小数首位を読み取る
$-k \leq \log_{10} N < -k+1$ で $-k = -18$ だから $k = 18$。したがって、小数第 $18$ 位に初めて $0$ でない数字が現れます。
$\log_{10} N = -17.61$ のとき、「整数部分は $-17$」と答えたくなりますが、これは間違いです。
$-17.61$ を整数で挟むと $-18 \leq -17.61 < -17$ です。$-k = -18$ だから $k = 18$ です。
✗ 誤り:「$-17.61$ の整数部分は $-17$ だから、小数第 $17$ 位」
✓ 正しい:「$-18 \leq -17.61 < -17$ だから $k = 18$、小数第 $18$ 位」
負の数では「切り捨て」と「切り上げ」の方向が正の数と逆になります。$-17.61$ 以下の最大の整数は $-18$ です(これをガウス記号 $\lfloor -17.61 \rfloor = -18$ といいます)。
実数 $x$ に対し、$x$ 以下の最大の整数を $\lfloor x \rfloor$ と書き、ガウス記号(床関数、floor function)といいます。たとえば $\lfloor 3.7 \rfloor = 3$、$\lfloor -2.3 \rfloor = -3$ です。
桁数の公式は $\lfloor \log_{10} N \rfloor + 1$ と書くことができます。大学数学や整数論で頻出の記号です。
桁数は「$\log_{10} N$ の整数部分」で決まりました。では、最高位の数字(一番左の数字)はどうやって求めるのでしょうか。
たとえば $\log_{10} N = 4.7$ のとき、$N$ は5桁の数であることはわかりますが、最高位が $1$ なのか $9$ なのかはまだわかりません。実は、この情報は常用対数の小数部分に隠されています。
$n$ 桁の正の整数 $N$ の最高位の数字を $d$($1 \leq d \leq 9$)とします。$N$ は次のように表せます。
$$d \times 10^{n-1} \leq N < (d + 1) \times 10^{n-1}$$
両辺の常用対数をとると、
$$(n - 1) + \log_{10} d \leq \log_{10} N < (n - 1) + \log_{10}(d + 1)$$
$\log_{10} N$ の整数部分を $n - 1$、小数部分を $\alpha$($0 \leq \alpha < 1$)とおくと、
$$\log_{10} N = (n - 1) + \alpha$$
$$N = 10^{(n-1) + \alpha} = 10^{n-1} \times 10^{\alpha}$$
ここで $0 \leq \alpha < 1$ より $1 \leq 10^{\alpha} < 10$ です。
最高位の数字 $d$ は $d \leq 10^{\alpha} < d + 1$ を満たす整数、すなわち $\log_{10} d \leq \alpha < \log_{10}(d + 1)$ です。
つまり、$\log_{10} N$ の小数部分 $\alpha$ が、$\log_{10} d$ と $\log_{10}(d+1)$ の間にあるかどうかで最高位が決まります。
$\log_{10} N$ の小数部分を $\alpha$ とするとき、$N$ の最高位の数字 $d$ は
$$\log_{10} d \leq \alpha < \log_{10}(d + 1)$$
を満たす整数 $d$($1 \leq d \leq 9$)である。
つまり $10^{\alpha}$ を計算し、その整数部分が最高位の数字です。
$\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ とするとき、$15^{25}$ の最高位の数字を求めてみましょう。
$$\log_{10} 15^{25} = 25 \log_{10} 15 = 25 \log_{10} \frac{30}{2} = 25(\log_{10} 3 + \log_{10} 10 - \log_{10} 2)$$
$$= 25(0.4771 + 1 - 0.3010) = 25 \times 1.1761 = 29.4025$$
整数部分は $29$、小数部分は $\alpha = 0.4025$ です。
$\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ なので、$0.3010 \leq 0.4025 < 0.4771$。
すなわち $\log_{10} 2 \leq \alpha < \log_{10} 3$ だから、最高位の数字は $2$ です。
常用対数 $\log_{10} N$ には2つの情報が詰まっています。
整数部分:$N$ の桁数を決める(桁数 $=$ 整数部分 $+ 1$)
小数部分:$N$ の最高位の数字を決める($10^{\alpha}$ の整数部分が最高位)
つまり「だいたいの大きさ」が整数部分、「先頭の数字の細かい情報」が小数部分というわけです。
$\log_{10} N$ が負のとき、小数部分の取り出し方に注意が必要です。
$\log_{10} N = -17.61$ のとき、小数部分は $-17.61 - (-18) = 0.39$ です($-0.61$ ではありません)。
✗ 誤り:小数部分 $= -0.61$
✓ 正しい:小数部分 $= -17.61 - \lfloor -17.61 \rfloor = -17.61 - (-18) = 0.39$
小数部分は常に $0$ 以上 $1$ 未満の値です。
自然界のデータや統計データの最高位の数字には驚くべき法則があります。最高位が $d$ である確率は均等($\frac{1}{9}$)ではなく、$\log_{10}\frac{d+1}{d}$ に従います。これをベンフォードの法則(Benford's law)といいます。
たとえば、最高位が $1$ である確率は $\log_{10} 2 \fallingdotseq 0.301$(約30%)で、最高位が $9$ である確率は $\log_{10} \frac{10}{9} \fallingdotseq 0.046$(約5%)です。企業の不正会計の検出にも使われる驚きの法則です。
「$N$ の桁数を求めよ」という順方向の問題だけでなく、「$N$ が何桁になるような条件を求めよ」という逆方向の問題も出題されます。
たとえば「$3^n$ が10桁の数になるような最小の自然数 $n$ を求めよ」という問題を考えましょう。
$3^n$ が10桁の数であるとは、
$$10^9 \leq 3^n < 10^{10}$$
各辺の常用対数をとると、
$$9 \leq n \log_{10} 3 < 10$$
$$\frac{9}{\log_{10} 3} \leq n < \frac{10}{\log_{10} 3}$$
$\log_{10} 3 = 0.4771$ を代入すると、
$$\frac{9}{0.4771} \leq n < \frac{10}{0.4771}$$
$$18.86\cdots \leq n < 20.96\cdots$$
この不等式を満たす自然数は $n = 19, 20$ で、最小値は $n = 19$ です。
「3進法で100桁の自然数 $N$ を10進法で表すと何桁か」のような問題では、$n$ 進法の桁数の条件を不等式に翻訳します。
3進法で100桁の自然数 $N$ は $3^{99} \leq N < 3^{100}$ を満たします。各辺の常用対数をとると、
$$99 \times 0.4771 \leq \log_{10} N < 100 \times 0.4771$$
$$47.2329 \leq \log_{10} N < 47.71$$
$\log_{10} N$ の整数部分は $47$ なので、$N$ は10進法で $48$ 桁の数です。
$n$ 進法で $m$ 桁の自然数 $N$ は $n^{m-1} \leq N < n^m$ を満たす。
常用対数をとると $(m-1)\log_{10} n \leq \log_{10} N < m \log_{10} n$ となり、ここから10進法での桁数が求まる。
$n$ 進法と10進法の桁数の比は、おおよそ $\log_{10} n$ 倍になります。
常用対数は「大きな数の桁数」以外にも、実生活の問題で活躍します。典型的なのは「光の減衰」や「人口増加」の問題です。
たとえば、「光がガラス板を1枚通過するたびに強さが $\frac{8}{9}$ になる。元の強さの $\frac{1}{10}$ 以下になるのは何枚以上通過したときか」という問題では、
$$\left(\frac{8}{9}\right)^n \leq \frac{1}{10}$$
両辺の常用対数をとると $n(\log_{10} 8 - \log_{10} 9) \leq -1$ と変形でき、$n$ の範囲が求まります。
不等式の両辺を負の数で割ると、不等号の向きが反転します。常用対数の問題でこのミスが頻発します。
$n(\log_{10} 8 - \log_{10} 9) \leq -1$ で $\log_{10} 8 - \log_{10} 9 < 0$ なので、
✗ 誤り:$n \leq \dfrac{-1}{\log_{10} 8 - \log_{10} 9}$(不等号をそのまま)
✓ 正しい:$n \geq \dfrac{-1}{\log_{10} 8 - \log_{10} 9}$(不等号が反転)
負の数で割ったら不等号を逆にすることを忘れないようにしましょう。
対数は17世紀初頭にネイピア(Napier)によって発明されました。当時の航海士は、天体観測から船の位置を計算するために、大きな桁数の数の掛け算を日常的に行っていました。対数を使えば「掛け算を足し算に変換」できるため、計算の労力が劇的に減少しました。
ラプラスは「対数は天文学者の寿命を倍にした」と評しています。常用対数(底10の対数)は特に実用計算に適しており、20世紀半ばまで電卓の代わりに「対数表」が広く使われていました。
Q1. $\log_{10} 2 = 0.3010$ とするとき、$2^{10}$ の桁数を求めよ。
Q2. $\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ とするとき、$\log_{10} 5$ の値を求めよ。
Q3. $\log_{10} N = -5.23$ のとき、$N$ は小数第何位に初めて $0$ でない数字が現れるか。
Q4. $\log_{10} N = 4.75$ のとき、$N$ の桁数と最高位の数字をそれぞれ求めよ。ただし $\log_{10} 5 = 0.6990$、$\log_{10} 6 = 0.7782$ とする。
Q5. $\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ とするとき、$6^{30}$ の桁数を求めよ。
$\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ とするとき、次の問いに答えよ。
(1) $12^{20}$ は何桁の整数か。
(2) $\left(\dfrac{2}{3}\right)^{40}$ は小数第何位に初めて $0$ でない数字が現れるか。
(1) $\log_{10} 12^{20} = 20 \log_{10} 12 = 20 \log_{10}(2^2 \cdot 3) = 20(2 \times 0.3010 + 0.4771)$
$= 20 \times 1.0791 = 21.582$
$21 \leq 21.582 < 22$ より、$12^{20}$ は $22$ 桁の整数。
(2) $\log_{10} \left(\dfrac{2}{3}\right)^{40} = 40(\log_{10} 2 - \log_{10} 3) = 40(0.3010 - 0.4771)$
$= 40 \times (-0.1761) = -7.044$
$-8 \leq -7.044 < -7$ より、小数第 $8$ 位に初めて $0$ でない数字が現れる。
$\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ とする。$12^{60}$ は何桁の整数か。また、その最高位の数字を求めよ。
$\log_{10} 12^{60} = 60 \log_{10}(2^2 \cdot 3) = 60(2 \times 0.3010 + 0.4771) = 60 \times 1.0791 = 64.746$
桁数:$64 \leq 64.746 < 65$ より、$12^{60}$ は $65$ 桁の整数。
最高位の数字:小数部分 $\alpha = 0.746$。
$\log_{10} 5 = 1 - 0.3010 = 0.6990$
$\log_{10} 6 = 0.3010 + 0.4771 = 0.7781$
$\log_{10} 5 = 0.6990 \leq 0.746 < 0.7781 = \log_{10} 6$
よって、最高位の数字は $5$。
$\log_{10} N$ の整数部分から桁数を、小数部分から最高位の数字を読み取ります。小数部分 $\alpha$ に対して、$\log_{10} d \leq \alpha < \log_{10}(d+1)$ を満たす $d$ が最高位です。$\log_{10} 5 = 0.6990$、$\log_{10} 6 = 0.7781$ が必要になるので、$\log_{10} 2$ と $\log_{10} 3$ から計算します。
$\log_{10} 3 = 0.4771$ とする。$3^n$ が10桁の数となるような自然数 $n$ をすべて求めよ。
$3^n$ が10桁の数であるとき、
$$10^9 \leq 3^n < 10^{10}$$
各辺の常用対数をとると、
$$9 \leq n \log_{10} 3 < 10$$
$$\frac{9}{0.4771} \leq n < \frac{10}{0.4771}$$
$$18.86\cdots \leq n < 20.96\cdots$$
よって、条件を満たす自然数は $n = 19, 20$。
「$n$ 桁の数」という条件を $10^{n-1} \leq N < 10^n$ の不等式に翻訳することが出発点です。常用対数をとったあとの不等式の処理は、通常の不等式と同じです。割り算の際に $\log_{10} 3 > 0$ なので不等号の向きは変わりません。
$\log_{10} 2 = 0.3010$、$\log_{10} 3 = 0.4771$ とする。
(1) $15^{25}$ は何桁の整数か。また、その最高位の数字を求めよ。
(2) $0.15^{70}$ を小数で表すと、小数第何位に初めて $0$ でない数字が現れるか。また、その数字を求めよ。
(1)
$\log_{10} 15 = \log_{10} \dfrac{30}{2} = \log_{10} 3 + \log_{10} 10 - \log_{10} 2 = 0.4771 + 1 - 0.3010 = 1.1761$
$\log_{10} 15^{25} = 25 \times 1.1761 = 29.4025$
桁数:$29 \leq 29.4025 < 30$ より、$15^{25}$ は $30$ 桁。
最高位:小数部分 $\alpha = 0.4025$。
$\log_{10} 2 = 0.3010 \leq 0.4025 < 0.4771 = \log_{10} 3$
よって最高位の数字は $2$。
(2)
$\log_{10} 0.15 = \log_{10} \dfrac{3}{20} = \log_{10} 3 - \log_{10} 2 - \log_{10} 10 = 0.4771 - 0.3010 - 1 = -0.8239$
$\log_{10} 0.15^{70} = 70 \times (-0.8239) = -57.673$
小数首位:$-58 \leq -57.673 < -57$ より、小数第 $58$ 位に初めて $0$ でない数字が現れる。
初めて現れる数字:小数部分 $\alpha = -57.673 - (-58) = 0.327$。
$\log_{10} 2 = 0.3010 \leq 0.327 < 0.4771 = \log_{10} 3$
$10^{0.327}$ の整数部分は $2$。よって初めて現れる $0$ でない数字は $2$。
(1) は桁数と最高位の複合問題です。$15 = \frac{30}{2} = \frac{3 \times 10}{2}$ と分解するのがコツです。
(2) は小数首位の問題ですが、「初めて現れる $0$ でない数字」も求めます。これは最高位の数字と同じ手法で、$\log_{10} N$ の小数部分(ガウス記号を使った小数部分)から判定します。負の数の小数部分の取り出しに注意が必要です。