常用対数と桁数

同義語:common logarithms and number of digits

概要

常用対数と桁数(common logarithms and number of digits)とは、正の整数 $N$ の桁数と最高位の数字を $\log_{10}N$ から読む方法である。$N$ が $k$ 桁であることは $k-1\le\log_{10}N<k$ と同値で桁数は $\lfloor\log_{10}N\rfloor+1$ である。最高位の数字が $d$ であることは $\log_{10}N$ の小数部分が $\log_{10}d$ 以上 $\log_{10}(d+1)$ 未満であることと同値である。$0<x<1$ なら初めて $0$ でない数字が現れるのは小数第 $-\lfloor\log_{10}x\rfloor$ 位である。$\log_{10}2$ は無理数なので、$2^n$ の最高位の数字が $d$ になる割合は $\log_{10}(1+1/d)$ に近づく。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 対数関数, 指数関数, 床関数

高校での出発点:2 の 100 乗は何桁か

$2^{100}$ を計算機なしで書き下すのは大変である。しかし「何桁の数か」「いちばん上の位の数字は何か」なら、常用対数の表の値 $\log_{10}2=0.3010$ だけで分かる。この記事では、その仕組みを定理として述べ、証明する。まず、高校の教科書と同じ計算を 3 つ見る。

2 の 100 乗の桁数

$\log_{10}2=0.3010$ として、$2^{100}$ の桁数を求める。
$$ \log_{10}2^{100}=100\log_{10}2=100\times0.3010=30.10 $$
なので
$$ 10^{30}<10^{30.10}=2^{100}<10^{31} $$
である。$10^{30}$ は $1$ の後に $0$ が $30$ 個並ぶ $31$ 桁の数、$10^{31}$ は $32$ 桁の最小の数である。$2^{100}$ はその間にあるので $31$ 桁である。実際、$2^{100}=1267650600228229401496703205376$ で、数えると $31$ 桁ある。

3 の 50 乗の桁数

$\log_{10}3=0.4771$ として、$3^{50}$ の桁数を求める。
$$ \log_{10}3^{50}=50\times0.4771=23.855 $$
なので $10^{23}<3^{50}<10^{24}$ であり、$3^{50}$ は $24$ 桁である。実際 $3^{50}=717897987691852588770249$ は $24$ 桁である。いちばん上の位の数字は $7$ である。この $7$ も対数から読めることを ex-cld-leading で見る。

$\log_{10}2=0.3010$ の意味

$\log_{10}2=0.3010$ は「$2$ を $10$ 回掛けると、$10$ を約 $3.010$ 回掛けたものになる」という意味である。実際
$$ 2^{10}=1024 $$
は $10^3=1000$ より少しだけ大きい。$2^{10}>10^3$ の両辺の常用対数をとると $10\log_{10}2>3$、つまり $\log_{10}2>0.3$ である。また $2^{13}=8192<10^4$ から $13\log_{10}2<4$、つまり $\log_{10}2<\dfrac4{13}=0.3076\ldots$ である。こうして、対数表を見なくても $0.3<\log_{10}2<0.3077$ が分かる。

この記事で答える問いは次の 5 つである。

  1. 正の整数 $N$ の桁数は、$\log_{10}N$ からどう決まるか。→ thm-cld-digits
  2. $0$ と $1$ の間の数は、小数第何位に初めて $0$ でない数字が現れるか。→ thm-cld-decimal
  3. いちばん上の位の数字は、$\log_{10}N$ のどこを見れば分かるか。→ thm-cld-leading
  4. 対数表の値は 4 桁しかないのに、答えを信じてよいのはいつか。→ rem-cld-precision、ex-cld-precision
  5. $2,4,8,16,\dots$ の最高位の数字はどれくらいの割合で $1$ になるか。→ cor-cld-benford
    高校の計算この記事の言葉大学の言葉
    $\log_{10}N$ の整数部分 $+1$ が桁数thm-cld-digits(床関数)実数の大きさ(絶対値)を 10 の冪で測る
    $\log_{10}N$ の小数部分で最高位が決まるthm-cld-leading(対数目盛)群の同型 $\log_{10}\colon(\mathbb{R}_{>0},\times)\to(\mathbb{R},+)$ と剰余 $\mathbb{R}/\mathbb{Z}$
    $2^{10}\approx10^3$$\log_{10}2$ は無理数(prop-cld-irrational)無理数の倍数の小数部分は一様に分布する(Weyl)
    最高位が $1$ になる割合cor-cld-benfordBenford の法則

常用対数と指数表示

常用対数

常用対数と小数部分

正の実数 $x$ に対し、$10^y=x$ を満たす実数 $y$ がただ 1 つある。この $y$ を $x$ の 常用対数 といい、$\log_{10}x$ と書く。つまり $10$ を底とする対数である。
実数 $y$ に対し、$y$ 以下の整数のうち最大のものを $\lfloor y\rfloor$ と書き、$y$ の 整数部分 という(高校の教科書ではガウス記号 $[y]$ と書くことが多い)。$\{y\}:=y-\lfloor y\rfloor$ を $y$ の 小数部分 という。定義から
$$ \lfloor y\rfloor\le y<\lfloor y\rfloor+1,\qquad 0\le\{y\}<1 $$
である。

「$10^y=x$ を満たす $y$ がただ 1 つある」ことは、指数関数 $y\mapsto10^y$ が実数全体から正の実数全体への狭義単調増加な全単射であることからわかる。このことの証明は 指数関数と対数関数はどう定義するか で扱う。ここでは結果だけを使う。整数部分と小数部分(床関数)の性質は、定義の不等式だけを使って証明する。

常用対数・整数部分・小数部分の計算
  1. $\log_{10}1000=3$、$\log_{10}0.01=-2$ である。$10^3=1000$、$10^{-2}=\dfrac1{100}=0.01$ だからである。
  2. $\log_{10}2=0.3010$ とすると、$\log_{10}2000=\log_{10}(2\times10^3)=\log_{10}2+3=3.3010$ である。整数部分は $3$、小数部分は $0.3010$ である。
  3. $y=-2.7$ の整数部分は $-3$ である($-2$ ではない)。$-3\le-2.7<-2$ だからである。小数部分は $\{-2.7\}=-2.7-(-3)=0.3$ である。負の数の整数部分は、小数点以下を切り捨てた数とは違うので注意する。

常用対数を使うときに要るのは、次の 2 つの性質である。

常用対数の基本性質

$x,y$ を正の実数、$r$ を実数とする。

  1. $\log_{10}(xy)=\log_{10}x+\log_{10}y$、$\log_{10}x^r=r\log_{10}x$、$\log_{10}10^r=r$ である。
  2. $x< y$ ならば $\log_{10}x<\log_{10}y$ である(狭義単調増加)。
指数法則と指数関数の単調性に移す

方針:$a=\log_{10}x$、$b=\log_{10}y$ とおいて、$x=10^a$、$y=10^b$ の形で計算する。
段 1(積と冪)。指数法則により $xy=10^a\cdot10^b=10^{a+b}$ である。常用対数の定義($10^{a+b}$ の常用対数は $a+b$)により $\log_{10}(xy)=a+b=\log_{10}x+\log_{10}y$ である。同じく $x^r=(10^a)^r=10^{ar}$ なので $\log_{10}x^r=ar=r\log_{10}x$ である。$\log_{10}10^r=r$ は定義そのものである。
段 2(単調性)。$x< y$ とし、$a\ge b$ と仮定して矛盾を導く。底 $10$ は $1$ より大きいので、$y\mapsto10^y$ は狭義単調増加である。よって $a\ge b$ なら $10^a\ge10^b$、つまり $x\ge y$ となり、$x< y$ に反する。したがって $a< b$、つまり $\log_{10}x<\log_{10}y$ である。$\square$

段 2 は、単調性の向きを変えずに不等式の両辺の常用対数をとってよい、ということである。以下では、このことを何度も使う。

指数表示:$x=m\times10^n$

大きな数や小さな数は、$2^{100}\approx1.27\times10^{30}$ のように「$1$ 以上 $10$ 未満の数」×「$10$ の整数乗」の形で書くと扱いやすい。この書き方がただ 1 通りであること、そして常用対数の整数部分と小数部分がそれぞれ何を表すかを確かめる。

指数表示と常用対数

正の実数 $x$ は、整数 $n$ と $1\le m<10$ を満たす実数 $m$ を使って
$$ x=m\times10^n $$
の形にただ 1 通りに書ける。このとき
$$ n=\lfloor\log_{10}x\rfloor,\qquad \log_{10}m=\{\log_{10}x\} $$
である。

整数部分と小数部分に分ける

方針:$\log_{10}x$ を整数部分と小数部分に分け、小数部分から $m$ を作る。一意性は、$\log_{10}m$ が $0$ 以上 $1$ 未満になることから示す。
段 1(書けること)。$L:=\log_{10}x$、$n:=\lfloor L\rfloor$、$m:=10^{\{L\}}$ とおく。$L=n+\{L\}$ なので、指数法則により
$$ x=10^L=10^{\{L\}+n}=10^{\{L\}}\times10^n=m\times10^n $$
である。$0\le\{L\}<1$ と、$10^y$ が狭義単調増加であることから、$10^0\le10^{\{L\}}<10^1$、つまり $1\le m<10$ である。
段 2(1 通りであること)。$x=m\times10^n$($n$ は整数、$1\le m<10$)と書けたとする。prop-cld-log-basic の 1 により
$$ \log_{10}x=\log_{10}m+n $$
である。prop-cld-log-basic の 2 により $\log_{10}1\le\log_{10}m<\log_{10}10$、つまり $0\le\log_{10}m<1$ である。したがって
$$ n\le\log_{10}x< n+1 $$
であり、$n$ は $\log_{10}x$ 以下の最大の整数、つまり $n=\lfloor\log_{10}x\rfloor$ である。すると $\log_{10}m=\log_{10}x-n=\{\log_{10}x\}$ であり、$m=10^{\{\log_{10}x\}}$ も決まる。よって書き方はただ 1 通りである。$\square$

指数表示を常用対数から求める
  1. $2^{100}$:$\log_{10}2^{100}=30.10299\ldots$ なので、$n=30$、$m=10^{0.10299\ldots}=1.2676\ldots$ である。$2^{100}=1.2676\ldots\times10^{30}$ で、ex-cld-first-2-100 の値と合う。
  2. $x=0.00052$:$x=5.2\times10^{-4}$ なので $n=-4$、$m=5.2$ である。常用対数は $\log_{10}0.00052=\log_{10}5.2-4=0.7160\ldots-4=-3.2839\ldots$ である。整数部分は $\lfloor-3.2839\ldots\rfloor=-4$ で $n$ と一致し、小数部分は $-3.2839\ldots-(-4)=0.7160\ldots=\log_{10}5.2$ で $\log_{10}m$ と一致する。

$\log_{10}x$ の整数部分は「$10$ の何乗の大きさか」を、小数部分は「$1$ から $10$ までの間のどこにあるか」を表している。小数部分を目盛にしたものが 対数目盛 である(図 2 の上段)。対数目盛では、$1$ から $10$ までの数 $d$ を、左端から $\log_{10}d$ の位置に置く。$2$ は $0.301$、$3$ は $0.477$ の位置に来て、目盛の間隔は右へ行くほど狭くなる。対数目盛のグラフ用紙の使い方は 対数目盛と片対数グラフ で扱う。

主定理 1:桁数は常用対数の整数部分で決まる

桁数の定義

正の整数 $N$ は、10 進法で
$$ N=a_{k-1}\times10^{k-1}+a_{k-2}\times10^{k-2}+\cdots+a_1\times10+a_0\qquad(a_i\in\{0,1,\dots,9\},\ a_{k-1}\ne0) $$
とただ 1 通りに書ける。この書き方があることと 1 通りであることは、整数の筆算の仕組み で扱う位取りの考え方である。このときの $k$ を $N$ の 桁数、$a_{k-1}$ を $N$ の 最高位の数字 という。

桁数と 10 の冪の不等式

正の整数 $N$ と正の整数 $k$ について、次の 2 つは同値である。

  1. $N$ は $k$ 桁である。
  2. $10^{k-1}\le N<10^k$ である。
最小の $k$ 桁の数と最大の $k$ 桁の数

方針:1 ⇒ 2 は、$k$ 桁の数のうち最小のものと最大のものを調べる。2 ⇒ 1 は、1 ⇒ 2 の結果と、区間が重ならないことから示す。
段 1(1 ⇒ 2 の左側)。$N$ が $k$ 桁なら、上の表し方で $a_{k-1}\ge1$ であり、ほかの $a_i$ は $0$ 以上なので
$$ N\ge a_{k-1}\times10^{k-1}\ge10^{k-1} $$
である。
段 2(1 ⇒ 2 の右側)。どの $a_i$ も $9$ 以下なので
$$ N\le9\times(10^{k-1}+10^{k-2}+\cdots+10+1)=9\times\frac{10^k-1}{10-1}=10^k-1<10^k $$
である。2 つ目の等号は等比数列の和の公式である。
段 3(2 ⇒ 1)。$10^{k-1}\le N<10^k$ とする。$N$ の桁数を $j$ とすると、段 1・段 2 により $10^{j-1}\le N<10^j$ である。もし $j< k$ なら $j\le k-1$ なので $N<10^j\le10^{k-1}$ となり、$10^{k-1}\le N$ に反する。もし $j>k$ なら $j-1\ge k$ なので $N\ge10^{j-1}\ge10^k$ となり、$N<10^k$ に反する。したがって $j=k$ である。$\square$

3 桁の数の範囲

$k=3$ なら、lem-cld-digit-range は「$N$ が 3 桁 ⇔ $100\le N<1000$」である。最小の 3 桁の数は $100=10^2$、最大は $999=10^3-1$ である。$1000$ は $10^3\le1000<10^4$ なので 4 桁である。

主定理

桁数の公式

正の整数 $N$ の桁数は
$$ \lfloor\log_{10}N\rfloor+1 $$
である。言いかえると、$N$ が $k$ 桁であることと $k-1\le\log_{10}N< k$ であることは同値である。

不等式の両辺の常用対数をとる

方針:lem-cld-digit-range の不等式を常用対数に移す。
段 1(常用対数をとる)。$k$ を正の整数とする。prop-cld-log-basic の 2(単調性)により、$10^{k-1}\le N$ と $\log_{10}10^{k-1}\le\log_{10}N$ は同値であり、$N<10^k$ と $\log_{10}N<\log_{10}10^k$ も同値である。ここで「同値」と言えるのは、単調性を逆向きに使うと、$\log_{10}10^{k-1}\le\log_{10}N$ なら $10^{k-1}>N$ はありえない(もし $10^{k-1}>N$ なら単調性により $\log_{10}10^{k-1}>\log_{10}N$ となる)からである。$\log_{10}10^{k-1}=k-1$、$\log_{10}10^k=k$ なので
$$ 10^{k-1}\le N<10^k\iff k-1\le\log_{10}N< k $$
である。
段 2(整数部分で書く)。lem-cld-digit-range と段 1 により、$N$ が $k$ 桁であることと $k-1\le\log_{10}N< k$ は同値である。$k-1$ は整数なので、$k-1\le\log_{10}N< k$ は「$k-1$ は $\log_{10}N$ 以下の最大の整数」、つまり $k-1=\lfloor\log_{10}N\rfloor$ と同じである。よって桁数は $k=\lfloor\log_{10}N\rfloor+1$ である。$\square$

桁数の公式を使う
  1. $2^{100}$:$\log_{10}2^{100}=30.10\ldots$ なので、桁数は $30+1=31$ である(ex-cld-first-2-100)。
  2. $3^{50}$:表の値 $\log_{10}3=0.4771$ を使うと $\log_{10}3^{50}=23.855$ なので、桁数は $24$ である(ex-cld-first-3-50)。本当の値は $50\log_{10}3=23.856\ldots$ で、整数部分は同じ $23$ である。
  3. $10^5=100000$:$\log_{10}10^5=5$ で、整数部分は $5$ そのものである。桁数は $5+1=6$ で、数えても $6$ 桁である。常用対数がちょうど整数になる端の場合も、公式はそのまま使える。
  4. $999$:$\log_{10}999=2.9995\ldots$ で、整数部分は $2$ なので $3$ 桁である。$3$ に非常に近いが $3$ には届かない。
  5. $2^n$ の桁数の増え方:$\log_{10}2^n=n\log_{10}2$ は、$n$ が $1$ 増えるごとに $\log_{10}2=0.301\ldots$ ずつ増える。整数部分が $1$ 増えるには、平均で $\dfrac1{0.301\ldots}=3.32\ldots$ 回 $2$ を掛ける必要がある。実際、$2^1,2^2,2^3=8$ は $1$ 桁、$2^4=16$ から $2^6=64$ は $2$ 桁、$2^7=128$ から $2^9=512$ は $3$ 桁、$2^{10}=1024$ から $2^{13}=8192$ は $4$ 桁で、$3$ 個か $4$ 個ずつ同じ桁数が続く。

図 1 は、$n=1,2,\dots,40$ について $2^n$ の桁数を点で描き、直線 $y=n\log_{10}2$ と $y=n\log_{10}2+1$ を重ねたものである。
2ⁿ の桁数(点)は、直線 y = n log₁₀2 より上、y = n log₁₀2 + 1 以下にあり、階段状に 1 ずつ増える 2ⁿ の桁数(点)は、直線 y = n log₁₀2 より上、y = n log₁₀2 + 1 以下にあり、階段状に 1 ずつ増える
thm-cld-digits により、$2^n$ の桁数 $\lfloor n\log_{10}2\rfloor+1$ は $n\log_{10}2<\lfloor n\log_{10}2\rfloor+1\le n\log_{10}2+1$ を満たす。つまり点は下の直線より上、上の直線以下にある。$2^n$ の桁数は、$n$ が $3$ か $4$ 増えるごとに $1$ 増える(ex-cld-digits の (5))。

対数表の値の誤差

対数表の $\log_{10}2=0.3010$ は、本当の値 $0.30102999\ldots$ を小数第 5 位で四捨五入したものである。したがって誤差は $0.00005$ 以下である。$2^{100}$ の計算では誤差が $100$ 倍になるので、$100\log_{10}2$ の誤差は $0.005$ 以下である。$100\times0.3010=30.10$ なので、本当の値は $30.095$ 以上 $30.105$ 以下にあり、整数部分は確かに $30$ である。
一般に、$n\log_{10}a$ の誤差の見積もりの幅の中に整数が入っていなければ、桁数の答えは正しい。幅の中に整数が入るときは、表の値だけでは桁数が決まらない。そのような例を ex-cld-precision で見る。

積の桁数

桁数は「常用対数の整数部分 $+1$」なので、掛け算をすると常用対数は足し算になる。しかし、整数部分は足し算をそのまま保たない。

積の桁数

正の整数 $M,N$ の桁数をそれぞれ $j,k$ とすると、積 $MN$ の桁数は $j+k-1$ か $j+k$ のどちらかである。

常用対数の範囲を足す

方針:thm-cld-digits の不等式を足し合わせる。
段 1。thm-cld-digits により $j-1\le\log_{10}M< j$、$k-1\le\log_{10}N< k$ である。
段 2。prop-cld-log-basic の 1 により $\log_{10}MN=\log_{10}M+\log_{10}N$ なので、段 1 の 2 つの不等式を辺ごとに足すと
$$ j+k-2\le\log_{10}MN< j+k $$
である。
段 3。$\log_{10}MN$ は $j+k-2$ 以上 $j+k$ 未満なので、その整数部分は $j+k-2$ か $j+k-1$ である。thm-cld-digits により、$MN$ の桁数は整数部分に $1$ を足した $j+k-1$ か $j+k$ である。$\square$

2 桁の数どうしの積
  1. $10\times10=100$:$2$ 桁と $2$ 桁の積が $3$ 桁($j+k-1=3$)。
  2. $99\times99=9801$:$2$ 桁と $2$ 桁の積が $4$ 桁($j+k=4$)。
  3. $31\times32=992$ は $3$ 桁、$32\times32=1024$ は $4$ 桁である。どちらも最高位の数字が $3$ の $2$ 桁の数どうしの積なのに、桁数が違う。したがって、どちらになるかは最高位の数字だけでは決まらない。$\log_{10}31=1.4914$、$\log_{10}32=1.5051$ として小数部分の和を見ると、$31\times32$ では $0.4914+0.5051=0.9965$ で $1$ 未満、$32\times32$ では $0.5051+0.5051=1.0102$ で $1$ 以上である。積の桁数は、小数部分の和が $1$ 以上かどうかで決まる。$M,N$ の桁数を $j,k$ とすると $\log_{10}MN=(j-1)+(k-1)+$(小数部分の和)なので、和が $1$ 未満なら $\log_{10}MN$ の整数部分は $j+k-2$、$1$ 以上なら $j+k-1$ である(prf-cld-product の段 3)。

小数部分の和が $1$ 以上になるかどうかは、繰り上がりと同じ現象である。整数部分と小数部分に分けたときの繰り上がりの扱いは、床関数 の記事の基本性質でも扱う。

小数の場合:初めて 0 でない数字が現れる位

$0.3^{20}$ のような $1$ より小さい数では、「小数第何位に初めて $0$ でない数字が現れるか」を問う。常用対数は負になるが、整数部分を使う点は同じである。
$0< x<1$ のとき、$x$ の小数第 $i$ 位の数字を
$$ a_i:=\lfloor10^ix\rfloor-10\lfloor10^{i-1}x\rfloor\qquad(i=1,2,3,\dots) $$
で定める。たとえば $x=0.0523$ なら $\lfloor10x\rfloor=0$、$\lfloor100x\rfloor=5$、$\lfloor1000x\rfloor=52$ なので、$a_1=0-0=0$、$a_2=5-0=5$、$a_3=52-50=2$ で、ふだんの小数の数字と一致する。$10^ix$ の整数部分は「小数点を $i$ 桁右へずらして、小数点以下を切り捨てた数」だからである。

初めて 0 でない数字が現れる位

$0< x<1$ とし、$k$ を正の整数とする。次の 3 つは同値である。

  1. $x$ の小数第 $1$ 位から第 $k-1$ 位までの数字はすべて $0$ で、小数第 $k$ 位の数字は $0$ でない。
  2. $10^{-k}\le x<10^{-(k-1)}$ である。
  3. $-k\le\log_{10}x<-(k-1)$、つまり $k=-\lfloor\log_{10}x\rfloor$ である。
10 の冪を掛けて整数部分を見る

方針:1 を「$\lfloor10^{k-1}x\rfloor=0$ かつ $\lfloor10^kx\rfloor\ge1$」と言いかえ、それを不等式 2 に直す。2 ⇔ 3 は thm-cld-digits の段 1 と同じく常用対数をとる。
段 1(数字と整数部分)。$b_i:=\lfloor10^ix\rfloor$ とおく。$0< x<1$ なので $b_0=\lfloor x\rfloor=0$ である。$a_i$ の定義から $b_i=10b_{i-1}+a_i$ である。
段 2(1 ⇒「$b_{k-1}=0$ かつ $b_k\ge1$」)。$a_1=\cdots=a_{k-1}=0$ なら、段 1 の式を $i=1,2,\dots,k-1$ の順に使って $b_1=10\cdot0+0=0$、$b_2=0$、…、$b_{k-1}=0$ である。すると $b_k=10\cdot0+a_k=a_k\ge1$ である。
段 3(「$b_{k-1}=0$ かつ $b_k\ge1$」⇒ 1)。$0\le y$ なら $\lfloor y\rfloor\le\lfloor10y\rfloor$ である($\lfloor y\rfloor\le y\le10y$ で、$\lfloor10y\rfloor$ は $10y$ 以下の最大の整数だから)。これを $y=10^{i-1}x$ に使うと $b_{i-1}\le b_i$ なので、$0\le b_1\le b_2\le\cdots\le b_{k-1}=0$ となり、$b_1=\cdots=b_{k-1}=0$ である。段 1 の式から $a_i=b_i-10b_{i-1}=0$($i=1,\dots,k-1$)、$a_k=b_k-0\ge1$ である。
段 4(整数部分を不等式に直す)。$\lfloor y\rfloor=0$ は $0\le y<1$ と同じであり、$\lfloor y\rfloor\ge1$ は $y\ge1$ と同じである。したがって「$b_{k-1}=0$ かつ $b_k\ge1$」は「$10^{k-1}x<1$ かつ $10^kx\ge1$」、つまり $10^{-k}\le x<10^{-(k-1)}$ と同じである。段 2・段 3 と合わせて 1 ⇔ 2 である。
段 5(2 ⇔ 3)。prop-cld-log-basic の 2 により、2 の各不等式は常用対数をとっても保たれ、逆向きも成り立つ(prf-cld-digits の段 1 と同じ理由)。$\log_{10}10^{-k}=-k$ なので 2 ⇔ $-k\le\log_{10}x<-k+1$ である。$-k$ は整数なので、これは $\lfloor\log_{10}x\rfloor=-k$ と同じである。$\square$

0.3 の 20 乗
  1. $\log_{10}3=0.4771$ とすると $\log_{10}0.3=\log_{10}3-1=-0.5229$ なので
    $$ \log_{10}0.3^{20}=20\times(-0.5229)=-10.458 $$
    である。$\lfloor-10.458\rfloor=-11$ なので、thm-cld-decimal により $k=11$、つまり小数第 $11$ 位に初めて $0$ でない数字が現れる。実際 $0.3^{20}=0.00000000003486784401$ で、$0$ でない最初の数字 $3$ は小数第 $11$ 位にある。
  2. $\left(\dfrac12\right)^{30}$:$\log_{10}\left(\dfrac12\right)^{30}=-30\log_{10}2=-9.030$ なので、$\lfloor-9.030\rfloor=-10$、小数第 $10$ 位に初めて $0$ でない数字が現れる。実際 $\left(\dfrac12\right)^{30}=0.000000000931\ldots$ である。整数部分を「$-9$」と切り捨てて小数第 $9$ 位としてしまう間違いが多いので、$-10\le-9.030<-9$ を確かめてから答える。

主定理 2:最高位の数字は常用対数の小数部分で決まる

最高位の数字

正の整数 $N$ の最高位の数字を $d$ とする($d\in\{1,2,\dots,9\}$)。$c\in\{1,2,\dots,9\}$ について、次の 2 つは同値である。

  1. $d=c$ である。
  2. $\log_{10}c\le\{\log_{10}N\}<\log_{10}(c+1)$ である。
指数表示の $m$ の整数部分を見る

方針:prop-cld-scientific の $m$ の整数部分が最高位の数字であることを示し、$m$ の範囲を常用対数に移す。
段 1(最高位の数字は $\lfloor m\rfloor$)。$N$ を $k$ 桁とし、10 進法で $N=a_{k-1}\times10^{k-1}+R$、$R:=a_{k-2}\times10^{k-2}+\cdots+a_0$ と書く。lem-cld-digit-range の段 2 と同じ計算で $0\le R\le10^{k-1}-1<10^{k-1}$ である。$m:=\dfrac N{10^{k-1}}=a_{k-1}+\dfrac R{10^{k-1}}$ とおくと、$0\le\dfrac R{10^{k-1}}<1$ なので $\lfloor m\rfloor=a_{k-1}=d$ である。また $1\le d\le m< d+1\le10$ なので、$N=m\times10^{k-1}$ は prop-cld-scientific の指数表示であり、一意性により $\log_{10}m=\{\log_{10}N\}$ である。
段 2($d=c$ を $m$ の範囲で言う)。$\lfloor m\rfloor=c$ は $c\le m< c+1$ と同じである。
段 3(常用対数をとる)。prop-cld-log-basic の 2 により、$c\le m< c+1$ は $\log_{10}c\le\log_{10}m<\log_{10}(c+1)$ と同値である(逆向きは prf-cld-digits の段 1 と同じ理由)。段 1 の $\log_{10}m=\{\log_{10}N\}$ を代入して 2 を得る。$\square$

上は対数目盛。数 d を位置 log₁₀d に置くと、log₁₀d 以上 log₁₀(d+1) 未満の区間が「最高位の数字が d」に対応する。下は 2ⁿ(n = 1, …, 20)の log₁₀2ⁿ の小数部分で、点の入った区間の数字が最高位の数字になっている 上は対数目盛。数 d を位置 log₁₀d に置くと、log₁₀d 以上 log₁₀(d+1) 未満の区間が「最高位の数字が d」に対応する。下は 2ⁿ(n = 1, …, 20)の log₁₀2ⁿ の小数部分で、点の入った区間の数字が最高位の数字になっている
最高位の数字を判定するのに要る常用対数の値は、次の表のとおりである(小数第 5 位を四捨五入)。

$d$12345678910
$\log_{10}d$$0$$0.3010$$0.4771$$0.6021$$0.6990$$0.7782$$0.8451$$0.9031$$0.9542$$1$

$\log_{10}4=2\log_{10}2$、$\log_{10}5=1-\log_{10}2$、$\log_{10}6=\log_{10}2+\log_{10}3$、$\log_{10}8=3\log_{10}2$、$\log_{10}9=2\log_{10}3$ なので、表の値は $\log_{10}2,\log_{10}3,\log_{10}7$ の 3 つから作れる。

最高位の数字を求める
  1. $2^{100}$:$\{\log_{10}2^{100}\}=0.10\ldots$ は $0\le0.10<0.3010$ を満たすので、最高位の数字は $1$ である(実際 $1267\ldots$)。
  2. $3^{50}$:$\{\log_{10}3^{50}\}=0.855$ は $0.8451\le0.855<0.9031$ を満たすので、最高位の数字は $7$ である(実際 $7178\ldots$。ex-cld-first-3-50)。
  3. $5^{100}$:$\log_{10}5^{100}=100\times0.6990=69.90$ なので $70$ 桁で、小数部分 $0.90$ は $0.8451\le0.90<0.9031$ を満たす。最高位の数字は $7$ である(実際 $5^{100}=7888\ldots$ で $70$ 桁)。ただし $0.90$ と $\log_{10}8=0.9031$ の差は $0.003$ しかない。$\log_{10}5=0.6990$ の誤差 $0.00005$ 以下が $100$ 倍されて $0.005$ 以下になるので、表の値だけでは $7$ と $8$ のどちらかを決めきれない。より正確な値 $\log_{10}5=0.69897\ldots$ を使うと $\{100\log_{10}5\}=0.897\ldots<0.9031$ となり、$7$ と決まる。

図 2 の下段では、$2^1,2^2,\dots,2^{20}$ の $\log_{10}2^n$ の小数部分を点で描いた。$2^{n+1}$ の点は $2^n$ の点から $\log_{10}2=0.301\ldots$ だけ右へ進み、$1$ を超えたら左端へ戻る。$2^{n+10}$ の点は $2^n$ の点のすぐ右に来る。$2^{10}=1024$ が $10^3$ に近いことの言いかえである。どれだけ右にずれるかは ex-cld-first-seven で計算する。

例と反例

外した仮定・条件崩れる主張ボックス
対数の値が十分に正確であること表の値で計算した整数部分が本当の整数部分に等しいex-cld-precision
$N$ が正の整数であること$\lfloor\log_{10}N\rfloor+1$ が桁数を表すex-cld-noninteger
桁数を足せば積の桁数になる(誤った推測)$MN$ の桁数は $M$ と $N$ の桁数の和ex-cld-product-sum
$\log_{10}a$ が無理数であること$a^n$ の最高位の数字の頻度が $\log_{10}\left(1+\frac1d\right)$ に近づくex-cld-rational-log
反例:表の値では決まらない桁数

$2^{196}$ の桁数を $\log_{10}2=0.3010$ で計算すると
$$ 196\times0.3010=58.996 $$
なので、整数部分は $58$、桁数は $59$ となりそうである。しかし本当は $196\log_{10}2=59.0018\ldots$ で、$2^{196}=1004336277\ldots$ は $60$ 桁である。rem-cld-precision の見積もりでは、$196\log_{10}2$ は $196\times0.30095=58.986\ldots$ 以上 $196\times0.30105=59.005\ldots$ 以下にあり、この幅の中に整数 $59$ が入っている。したがって 4 桁の表の値では、整数部分が $58$ か $59$ かを決められない。$\log_{10}2=0.30103$(誤差 $0.000005$ 以下)を使うと $196\times0.30103=59.00188$ で、誤差の幅 $196\times0.000005<0.001$ を考えても整数部分は $59$ と決まる。
「$2^{196}$ は $10^{59}$ よりほんの少し大きい」ことを表の値が見分けられなかったのである。最高位の数字が $1$ で、その次も $0$ が続くような数は、この種の誤りが起きやすい。

反例:整数でない数の桁数
  1. $x=123.45$ では $\log_{10}x=2.0914\ldots$ で、$\lfloor\log_{10}x\rfloor+1=3$ は整数部分 $123$ の桁数である。整数部分が $1$ 以上の数では、$x$ の整数部分 $\lfloor x\rfloor$ に thm-cld-digits を使えば同じ答えが出る($\lfloor x\rfloor\le x<\lfloor x\rfloor+1\le10^k$ と $10^{k-1}\le\lfloor x\rfloor$ から $10^{k-1}\le x<10^k$ となるため)。
  2. $x=0.5$ では $\log_{10}x=-0.3010$ で、$\lfloor\log_{10}x\rfloor+1=-1+1=0$ になる。「$0$ 桁」には意味がなく、$1$ より小さい数には thm-cld-decimal を使う。thm-cld-digits の証明で使った 10 進法の表し方($a_{k-1}\ne0$)は、正の整数についてのものだからである。
反例:積の桁数は桁数の和とは限らない

$10$ と $10$ はどちらも $2$ 桁だが、積 $100$ は $3$ 桁で、$2+2=4$ にならない。一方 $99\times99=9801$ は $4$ 桁である。prop-cld-product のとおり、積の桁数は和か和から $1$ を引いたものになり、どちらになるかは常用対数の小数部分の和が $1$ 以上かどうかで決まる(ex-cld-product)。

反例:常用対数が有理数のとき
  1. $a=10$ では $10^n$ の最高位の数字はいつも $1$ である。$\log_{10}10=1$ は整数で、$\{n\log_{10}10\}=0$ がいつも区間 $[0,\log_{10}2)$ に入るからである。
  2. $a=\sqrt{10}=3.162\ldots$ では $\log_{10}a=\dfrac12$ なので、$\{n\log_{10}a\}$ は $n$ が偶数なら $0$、奇数なら $\dfrac12$ である。$\log_{10}3=0.4771\le\dfrac12<0.6021=\log_{10}4$ なので、最高位の数字は $n$ が偶数なら $1$、奇数なら $3$ である。実際 $(\sqrt{10})^2=10$、$(\sqrt{10})^3=31.62\ldots$、$(\sqrt{10})^5=316.2\ldots$ である。最高位の数字は $1$ と $3$ しか現れず、割合は $\dfrac12$ ずつになる。
    どちらも $\log_{10}a$ が有理数なので、小数部分 $\{n\log_{10}a\}$ は有限個の値しかとらない。cor-cld-benford の頻度の法則は、$\log_{10}a$ が無理数であることを使っている。

数学オリンピックの問題から

1975 年第 4 問:各位の数字の和を 3 回とる

国際数学オリンピック(1975 年)第 4 問

$4444^{4444}$ を 10 進法で書いたときの各位の数字の和を $A$ とする。$A$ の各位の数字の和を $B$ とする。$B$ の各位の数字の和を求めよ($A$、$B$ も 10 進法で書く)。
出典:国際数学オリンピック(1975 年)第 4 問 Oly75。筆者による和訳。答は $7$ である。

各位の数字の和は、元の数と同じ「9 で割った余り」をもつ。これが答えの候補を $9$ で割った余りで絞る鍵であり、常用対数は $A,B$ の大きさを上から押さえる鍵である。

高校数学で解く

方針:常用対数で $4444^{4444}$ の桁数を上から押さえ、$A$、$B$、求める和の順に大きさを絞る。次に、各位の数字の和は元の数と 9 で割った余りが同じであることを使って、余りを求める。求める和を $C$ とする。
段 1(桁数の上界)。$4444<5000$ なので、prop-cld-log-basic により
$$ \log_{10}4444^{4444}=4444\log_{10}4444<4444\log_{10}5000=4444\times(4-\log_{10}2) $$
である。$\log_{10}5000=\log_{10}\dfrac{10^4}2=4-\log_{10}2$ を使った。ex-cld-first-log2 で $2^{10}>10^3$ から示したとおり $\log_{10}2>0.3$ なので、$4-\log_{10}2<3.7$ であり、右辺は $4444\times3.7=16442.8$ より小さい。したがって $\log_{10}4444^{4444}$ の整数部分は $16442$ 以下で、thm-cld-digits により、$4444^{4444}$ の桁数は $16442+1=16443$ 以下である。
段 2($A$ と $B$ の上界)。各位の数字は $9$ 以下なので、$A\le9\times16443=147987$ である。$A<200000$ なので、$A$ は $5$ 桁以下か、最高位の数字が $1$ の $6$ 桁の数である。どちらの場合も $B\le1+9\times5=46$ である。
段 3($C$ の上界)。$B\le46$ である。$B\le39$ なら、十の位は $3$ 以下、一の位は $9$ 以下なので $C\le3+9=12$ である。$40\le B\le46$ なら $C\le4+6=10$ である。どちらでも $1\le C\le12$ である($B\ge1$ なので $C\ge1$)。
段 4(各位の数字の和と 9 で割った余り)。$10^i-1=99\cdots9$($9$ が $i$ 個)は $9$ の倍数なので、$10^i\equiv1\pmod 9$ である(合同式の記号と計算規則は 合同式の計算規則 で扱う)。したがって $N=\sum a_i10^i$ について
$$ N=\sum a_i10^i\equiv\sum a_i\pmod 9 $$
であり、$N$ とその各位の数字の和は 9 で割った余りが等しい。これを 3 回使うと $4444^{4444}\equiv A\equiv B\equiv C\pmod 9$ である。
段 5(余りの計算)。$4444=9\times493+7$ なので $4444\equiv7\pmod 9$ である。$7^3=343=9\times38+1$ なので $7^3\equiv1\pmod9$ である。$4444=3\times1481+1$ なので
$$ 4444^{4444}\equiv7^{4444}=(7^3)^{1481}\times7\equiv1^{1481}\times7=7\pmod 9 $$
である。
段 6(まとめ)。段 3 により $1\le C\le12$、段 4・段 5 により $C\equiv7\pmod9$ である。$1$ 以上 $12$ 以下で $9$ で割って $7$ 余る整数は $7$ だけなので、$C=7$ である。$\square$

$4444^{4444}$ の実際の値

計算機で $4444^{4444}$ を全桁計算すると、$16211$ 桁で、$A=72601$、$B=16$、$C=7$ である。prf-cld-oly75-high の段 1 の上界 $16443$ は本当の桁数 $16211$ よりやや大きいが、答えを絞るにはこれで足りる。
より詳しい値 $\log_{10}4444=3.6478\ldots$ を使うと、$4444\log_{10}4444=16210.7\ldots$ なので、thm-cld-digits により桁数そのもの $\lfloor16210.7\ldots\rfloor+1=16211$ も出る。$A=72601$ は段 2 の上界 $147987$ 以下、$B=16$ は上界 $46$ 以下、$C=7$ は段 3 の範囲 $1\le C\le12$ に入っている。これは計算機による確認であり、証明は prf-cld-oly75-high である。

大学数学で見ると

この問題は、整数の 2 つの「大きさ」を組み合わせている。1 つは実数としての大きさで、常用対数がそれを測る。各位の数字の和を $s(N)$ とすると、thm-cld-digits により
$$ s(N)\le9\,(\lfloor\log_{10}N\rfloor+1) $$
なので、$s$ を 1 回とるごとに数は「桁数くらいの大きさ」まで急に小さくなる。もう 1 つは $9$ で割った余りで、$s(N)\equiv N\pmod 9$ により、$s$ をとっても変わらない。大学の言葉では、「$9$ で割った余りをとる」ことは整数の環 $\mathbb{Z}$ から剰余環 $\mathbb{Z}/9\mathbb{Z}$ への環準同型であり、$10\equiv1$ なので位取りの式 $\sum a_i10^i$ が $\sum a_i$ に写る。変わらない量(余り)と、急に小さくなる量(大きさ)を組み合わせるのは、繰り返しの操作の行き先を決める典型的な方法である。$s$ を $1$ 桁になるまで繰り返した結果(数字根)は、$N\ge1$ について $1+\bigl((N-1)$ を $9$ で割った余り$\bigr)$ に等しい。

各位の数字の和で 9 の倍数を判定する方法は 倍数の判定法 で扱う。

大学数学で見る:最高位の数字の頻度

$2,4,8,16,32,64,128,256,512,1024,\dots$ の最高位の数字を並べると $2,4,8,1,3,6,1,2,5,1,\dots$ となり、$1$ が多い。$n=1$ から $1000$ までの $2^n$ では、最高位の数字が $1$ のものが $301$ 個ある。この節では、この割合が $\log_{10}2=0.301\ldots$ に近づく理由を見る。

高校数学で解く:最高位が 7 になる最初の $2^n$

最高位の数字が 7 になる最初の $n$

$2^n$ の最高位の数字が $7$ になる最小の $n$ を求める。thm-cld-leading により、条件は
$$ \log_{10}7=0.84510\le\{n\log_{10}2\}<0.90309=\log_{10}8 $$
である($\log_{10}2=0.30103$、$\log_{10}7=0.84510$ とする)。
$n=r+10j$($r=0,1,\dots,9$)と分けると、$10\log_{10}2=3+\delta$、$\delta=0.0103$ なので
$$ n\log_{10}2=r\log_{10}2+3j+j\delta $$
である。$3j$ は整数なので小数部分に影響せず、$\{n\log_{10}2\}$ は $\{r\log_{10}2\}$ から $j\delta$ ずつ右へ進む。$j\le4$($n\le49$)では $j\delta\le0.0412$ である。

$r$0123456789
$\{r\log_{10}2\}$$0$$0.3010$$0.6021$$0.9031$$0.2041$$0.5051$$0.8062$$0.1072$$0.4082$$0.7093$

区間 $[0.84510,0.90309)$ に届きうるのは $r=6$ だけである($r=3$ は $n=3$ で $2^3=8$ ちょうど、その後は $\log_{10}8$ より右へ進む。$r=9$ は $0.7093+0.0412=0.7505$ までしか進まない。ほかの $r$ はさらに遠い)。$r=6$ では
$$ 0.8062+0.0103j\ge0.8451\iff j\ge3.77\ldots $$
なので $j=4$、つまり $n=46$ が最初である。$\{46\log_{10}2\}=0.8474$ で、確かに区間に入る。実際 $2^{46}=70368744177664$ で、最高位の数字は $7$ である。

この例から分かるように、$\{n\log_{10}2\}$ は $1$ 周するごとに少しずつずれて、区間 $[0,1)$ をすき間なく埋めていく。ずれるのは、$\log_{10}2$ が有理数でないからである。

$\log_{10}2$ は無理数

$\log_{10}2$ は無理数である。

背理法:10 の冪と 2 の冪は等しくならない

方針:有理数 $\dfrac pq$ に等しいと仮定して、$10^p=2^q$ という整数の等式を導き、5 で割り切れるかどうかで矛盾を出す。
段 1(仮定)。$\log_{10}2=\dfrac pq$($p,q$ は整数、$q\ge1$)と仮定する。$1<2<10$ と単調性により $0<\log_{10}2<1$ なので、$p\ge1$ である。
段 2(整数の等式)。常用対数の定義により $10^{p/q}=2$ である。両辺を $q$ 乗すると $10^p=2^q$ である。
段 3(矛盾)。$p\ge1$ なので左辺 $10^p=2^p\times5^p$ は $5$ で割り切れる。右辺 $2^q$ の素因数は $2$ だけなので、素因数分解の一意性 により $5$ で割り切れない。これは矛盾である。よって $\log_{10}2$ は無理数である。$\square$

同じ方法で、$\log_{10}3$ や $\log_{10}7$ も無理数であることが示せる。無理数であることの証明の型は 実数とは何か:無理数の証明 で扱う。

大学数学で見る:一様分布と頻度

無理数の倍数の小数部分について、次の定理が知られている。

Weyl の一様分布定理

$\alpha$ を無理数とする。$0\le a< b\le1$ を満たすどんな $a,b$ についても
$$ \lim_{N\to\infty}\frac{\#\{\,n\ :\ 1\le n\le N,\ a\le\{n\alpha\}< b\,\}}N=b-a $$
である。ここで $\#$ は集合の要素の個数を表す。

証明しない

この定理はこの記事では証明しない。証明は一様分布の教科書 KN06 で扱われている。定理の言っていることは「$\{n\alpha\}$ は、長さの等しい区間に同じ割合ずつ入る」ということで、一様分布 と呼ばれる。$\alpha$ が有理数なら $\{n\alpha\}$ は有限個の値しかとらないので、この結論は成り立たない(ex-cld-rational-log)。

$2^n$ の最高位の数字の頻度

$d\in\{1,2,\dots,9\}$ とする。$1\le n\le N$ のうち $2^n$ の最高位の数字が $d$ であるものの個数を $F_d(N)$ とすると
$$ \lim_{N\to\infty}\frac{F_d(N)}N=\log_{10}(d+1)-\log_{10}d=\log_{10}\left(1+\frac1d\right) $$
である。

最高位の条件を区間に直して Weyl の定理を使う

方針:thm-cld-leading で「最高位が $d$」を小数部分の区間の条件に直し、thm-cld-weyl を当てはめる。
段 1。thm-cld-leading と $\log_{10}2^n=n\log_{10}2$ により、$2^n$ の最高位の数字が $d$ であることは $\log_{10}d\le\{n\log_{10}2\}<\log_{10}(d+1)$ と同値である。したがって $F_d(N)$ は、$1\le n\le N$ のうち $\{n\log_{10}2\}$ が区間 $[\log_{10}d,\log_{10}(d+1))$ に入るものの個数である。
段 2。prop-cld-irrational により $\alpha=\log_{10}2$ は無理数である。$a=\log_{10}d$、$b=\log_{10}(d+1)$ とすると $0\le a< b\le1$ である。thm-cld-weyl により $\dfrac{F_d(N)}N\to b-a$ である。
段 3。$b-a=\log_{10}(d+1)-\log_{10}d=\log_{10}\dfrac{d+1}d=\log_{10}\left(1+\dfrac1d\right)$ である。$\square$

頻度の表

$2^n$($1\le n\le N$)の最高位の数字の個数を数えると、次のとおりである。最下行は cor-cld-benford の $1000\log_{10}\left(1+\frac1d\right)$ である。

$d$123456789
$N=100$3017131077655
$N=1000$301176125977969565245
$1000\log_{10}(1+1/d)$301.0176.1124.996.979.266.958.051.245.8

$d=1$ の割合 $\log_{10}2=0.301\ldots$ は、$d=9$ の割合 $\log_{10}\frac{10}9=0.0457\ldots$ の約 $6.6$ 倍である。9 つの割合の和は $\log_{10}10=1$ になる。

2ⁿ(n = 1, …, 1000)の最高位の数字の個数(濃い棒)と、対数目盛の区間の長さから予想される個数 1000 log₁₀(1 + 1/d)(薄い棒) 2ⁿ(n = 1, …, 1000)の最高位の数字の個数(濃い棒)と、対数目盛の区間の長さから予想される個数 1000 log₁₀(1 + 1/d)(薄い棒)
図 3 のように、最高位の数字の頻度は対数目盛の区間の長さに比例する。対数目盛では $1$ と $2$ の間が最も長く、$9$ と $10$ の間が最も短いからである。統計のデータの最高位の数字にも同じ偏りが見られることがあり、Benford の法則 と呼ばれる。その話題は 最高位の数字とBenfordの法則 で扱う。

さらに先へ

  • 底を $10$ から $b$($2$ 以上の整数)に替えると、$N$ の $b$ 進法での桁数は $\lfloor\log_bN\rfloor+1$ である。証明は thm-cld-digits の $10$ を $b$ に替えるだけでよい。$b$ 進法の表し方は n進法と記数法 で扱う。
  • 常用対数は、掛け算の世界 $(\mathbb{R}_{>0},\times)$ を足し算の世界 $(\mathbb{R},+)$ に写す。整数部分を捨てて小数部分だけを見ることは、$\mathbb{R}$ を整数の差を無視した円周 $\mathbb{R}/\mathbb{Z}$ に写すことにあたる。最高位の数字は円周上の位置で決まり、$2$ を掛けることは円周を $\log_{10}2$ だけ回すことになる。thm-cld-weyl は「無理数の角だけ回し続けると、円周を一様に埋める」という定理(一様分布)である。
  • 階乗 $n!$ の桁数も、$\log_{10}n!=\sum_{k=1}^n\log_{10}k$ を見積もれば分かる。この和を積分で見積もる方法は 階乗の大きさの見積もり で扱う。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する