§B3.6常用対数

最終更新

21002^{100}を十進表示で書き下さなくても、log⁡102\log_{10}2の値から30<log⁡102100<3130<\log_{10}2^{100}<31と分かれば、21002^{100}が3131桁であると判断することができます。積を和へ、累乗を積へ移す対数の性質によって、数の大きさを1010の累乗と比べることができるからです。

常用対数は、正の数の大きさと十進表示における位置を結ぶ基本的な道具です。本記事では、数を隣り合う1010の累乗の間にはさみ、その常用対数から、整数部分の桁数や小数で最初に00でない数字が現れる位を求めます。

定義 1 (常用対数).1010を底とする対数log⁡10M\log_{10}M(M>0M>0)を、MMの常用対数という。

底1010は§B3.5 定義 1.2の条件a>0a>0かつa≠1a\ne1を満たすので、常用対数はすべての正の数について定まります。§B3.5 定理 2.1と§B3.5 公式 2.2は底が1010の場合にもそのまま成り立ち、§B3.5 定理 3.1によりlog⁡10\log_{10}は(0,∞)(0,\infty)で狭義単調増加です。

例 2 (常用対数の値). すべての整数kkについてlog⁡1010k=klog⁡1010=k\log_{10}10^{k}=k\log_{10}10=kである。とくに

log⁡101=0,log⁡1010=1,log⁡10100=2,log⁡100.001=−3\log_{10}1 = 0,\qquad \log_{10}10 = 1,\qquad \log_{10}100 = 2,\qquad \log_{10}0.001 = -3

である。

1010の累乗でない数の常用対数は、有理数であるとは限りません。

定理 3 (log⁡102\log_{10}2の無理性).log⁡102\log_{10}2は無理数である。

証明.10>2>110>2>1であり、§B3.5 定理 3.1により

0<log⁡102<10<\log_{10}2<1

である。log⁡102\log_{10}2が有理数であると仮定すると、正の整数p,qp,qを用いてlog⁡102=p/q\log_{10}2=p/qと表すことができる。§B3.5 定義 1.2により10p/q=210^{p/q}=2であるから、両辺をqq乗して

10p=2q10^p=2^q

を得る。p≥1p\ge1であるから10p10^pは55で割り切れるが、2q2^qは55で割り切れない。これは10p=2q10^p=2^qに反する。したがってlog⁡102\log_{10}2は無理数である。▨

以下では、log⁡102\log_{10}2やlog⁡103\log_{10}3の値を、不等式による評価として与えられたものとして用います。

定義 4 (床関数). 実数xxに対し、

m≤x<m+1m\le x<m+1

を満たすただ一つの整数mmを⌊x⌋\lfloor x\rfloorと書く。対応x↦⌊x⌋x\mapsto\lfloor x\rfloorを床関数という。

負の数についても同じ定め方を用います。たとえば⌊−30.11⌋=−31\lfloor -30.11\rfloor=-31であって、−30-30ではありません。

1 1 以上の数の桁数

定理 1.1 (桁数と常用対数).NNを11以上の実数とし、NNを1010進法で表したときの整数部分の桁数をnnとする。このとき

n=⌊log⁡10N⌋+1n = \lfloor \log_{10}N\rfloor + 1

が成り立つ。

証明.N≥1N\ge1であるから、NNの整数部分の桁数nnは正の整数である。整数部分がnn桁であることは、整数部分が10n−110^{n-1}以上10n10^n未満であることと同値である。10n−110^{n-1}と10n10^nは整数であるから、NNの整数部分がこの範囲にあることは、NN自身がこの範囲にあることと同値である。したがって

10n−1≤N<10n10^{n-1}\le N<10^{n}

が成り立つ。§B3.5 定理 3.1によりlog⁡10\log_{10}は狭義単調増加であるから、この不等式は

log⁡1010n−1≤log⁡10N<log⁡1010n\log_{10}10^{n-1}\le\log_{10}N<\log_{10}10^n

と同値である。§B3.5 定理 2.1により、すべての整数kkについてlog⁡1010k=klog⁡1010=k\log_{10}10^k=k\log_{10}10=kである。したがって

n−1≤log⁡10N<nn-1\le \log_{10}N<n

を得る。n−1n-1は整数であるから、床関数の定義により⌊log⁡10N⌋=n−1\lfloor\log_{10}N\rfloor=n-1である。両辺に11を加えると

n=⌊log⁡10N⌋+1n=\lfloor\log_{10}N\rfloor+1

を得る。▨

例 1.2 (21002^{100}の桁数).0.3010<log⁡102<0.30110.3010<\log_{10}2<0.3011とする。§B3.5 定理 2.1によりlog⁡102100=100log⁡102\log_{10}2^{100}=100\log_{10}2であり、この評価の各辺を100100倍すると

30.10<log⁡102100<30.1130.10<\log_{10}2^{100}<30.11

である。とくに30<log⁡102100<3130<\log_{10}2^{100}<31であるから⌊log⁡102100⌋=30\lfloor\log_{10}2^{100}\rfloor=30であり、定理 1.1により21002^{100}の桁数は30+1=3130+1=31である。

例 1.3 (積と累乗を組み合わせた評価).0.3010<log⁡102<0.30110.3010<\log_{10}2<0.3011と0.4771<log⁡103<0.47720.4771<\log_{10}3<0.4772とする。6506^{50}の桁数を求める。

6=2⋅36=2\cdot3であるから、§B3.5 定理 2.1によりlog⁡106=log⁡102+log⁡103\log_{10}6=\log_{10}2+\log_{10}3である。二つの評価を辺ごとに足すと0.7781<log⁡106<0.77830.7781<\log_{10}6<0.7783である。§B3.5 定理 2.1によりlog⁡10650=50log⁡106\log_{10}6^{50}=50\log_{10}6であるから、各辺を5050倍して

38.905<log⁡10650<38.91538.905<\log_{10}6^{50}<38.915

を得る。とくに38<log⁡10650<3938<\log_{10}6^{50}<39であるから⌊log⁡10650⌋=38\lfloor\log_{10}6^{50}\rfloor=38であり、定理 1.1により6506^{50}の桁数は3939である。

注意 1.4 (評価がどこまで精密であれば桁数が定まるか).定理 1.1が求めているのは⌊log⁡10N⌋\lfloor\log_{10}N\rfloorの値であって、log⁡10N\log_{10}Nの値そのものではない。L<log⁡10N<UL<\log_{10}N<Uという評価が与えられたとき、⌊L⌋=⌊U⌋\lfloor L\rfloor=\lfloor U\rfloorであれば

⌊L⌋≤L<log⁡10N<U<⌊U⌋+1=⌊L⌋+1\lfloor L\rfloor \le L < \log_{10}N < U < \lfloor U\rfloor + 1 = \lfloor L\rfloor + 1

が成り立つので、⌊log⁡10N⌋=⌊L⌋\lfloor\log_{10}N\rfloor=\lfloor L\rfloorが定まる。例 1.2ではL=30.10L=30.10、U=30.11U=30.11であり、⌊L⌋=⌊U⌋=30\lfloor L\rfloor=\lfloor U\rfloor=30であったから、桁数が定まった。

一方、⌊L⌋\lfloor L\rfloorと⌊U⌋\lfloor U\rfloorが異なる場合には、両端の床を比較するこの判定だけでは⌊log⁡10N⌋\lfloor\log_{10}N\rfloorは定まらない。評価区間が整数をまたぐなら、一般にはlog⁡10N\log_{10}Nをより狭い範囲へ押さえる必要がある。ただし、UU自身が整数であり、⌊L⌋=U−1\lfloor L\rfloor=U-1である場合には、上端の不等式が狭義であることから⌊log⁡10N⌋=U−1\lfloor\log_{10}N\rfloor=U-1と定まる。

2 1 より小さい正の数を小数で表したとき

0<N<10<N<1のとき、NNを小数で表すと、小数点の直後にいくつかの00が並んでから00でない数字が現れます。その位置も常用対数から求まります。以下では、0.1=0.0999⋯0.1=0.0999\cdotsのように小数の表し方が二通りある数については、99が限りなく続かない方の表し方を用います。

定理 2.1 (00でない数字が最初に現れる位).NNを0<N<10<N<1を満たす実数とし、NNには99が無限に続かない小数表示を用いる。また、kkを正の整数とする。次の二つは同値である。

  1. 10−k≤N<10−k+110^{-k}\le N<10^{-k+1}
  2. NNを小数で表すと、小数第11位から第k−1k-1位までがすべて00であり、小数第kk位が00でない

さらに、このときk=−⌊log⁡10N⌋k=-\lfloor\log_{10}N\rfloorである。

証明.NNの小数第11位から第k−1k-1位までのいずれかが00でなければ、その最初の位は第k−1k-1位以前であるからN≥10−k+1N\ge10^{-k+1}である。反対に、第11位から第k−1k-1位までがすべて00であれば、99が無限に続かない小数表示を用いることからN<10−k+1N<10^{-k+1}である。したがって、最初のk−1k-1個の数字がすべて00であることとN<10−k+1N<10^{-k+1}は同値である。

最初のk−1k-1個の数字がすべて00であるとし、小数第kk位の数字をddとする。小数第k+1k+1位以下が表す数をrrとおけば、0≤r<10−k0\le r<10^{-k}であり、

N=d⋅10−k+rN=d\cdot10^{-k}+r

と書くことができる。d≠0d\ne0ならばN≥d⋅10−k≥10−kN\ge d\cdot10^{-k}\ge10^{-k}であり、d=0d=0ならばN=r<10−kN=r<10^{-k}である。したがって、小数第kk位の数字が00でないこととN≥10−kN\ge10^{-k}は同値である。以上の二つの同値から、最初の非零の数字が小数第kk位にあることと

10−k≤N<10−k+110^{-k}\le N<10^{-k+1}

は同値である。

§B3.5 定理 3.1によりlog⁡10\log_{10}は狭義単調増加であるから、この不等式は

log⁡1010−k≤log⁡10N<log⁡1010−k+1\log_{10}10^{-k}\le\log_{10}N<\log_{10}10^{-k+1}

と同値である。§B3.5 定理 2.1により、これは

−k≤log⁡10N<−k+1-k\le\log_{10}N<-k+1

と書き直される。−k-kは整数であるから、床関数の定義により⌊log⁡10N⌋=−k\lfloor\log_{10}N\rfloor=-kである。両辺の符号を変えるとk=−⌊log⁡10N⌋k=-\lfloor\log_{10}N\rfloorを得る。▨

例 2.2 ((12)100\left(\frac12\right)^{100}を小数で表したとき).0.3010<log⁡102<0.30110.3010<\log_{10}2<0.3011とする。(12)100=2−100\left(\dfrac12\right)^{100}=2^{-100}であり、§B3.5 定理 2.1によりlog⁡102−100=−100log⁡102\log_{10}2^{-100}=-100\log_{10}2である。0.3010<log⁡102<0.30110.3010<\log_{10}2<0.3011の各辺を−100-100倍すると不等号の向きが変わり

−30.11<log⁡102−100<−30.10-30.11<\log_{10}2^{-100}<-30.10

である。とくに−31<log⁡102−100<−30-31<\log_{10}2^{-100}<-30であるから⌊log⁡102−100⌋=−31\lfloor\log_{10}2^{-100}\rfloor=-31であり、定理 2.1によりk=31k=31である。したがって(12)100\left(\dfrac12\right)^{100}を小数で表すと、小数第11位から第3030位までがすべて00であり、小数第3131位に初めて00でない数字が現れる。

定理 1.1と定理 2.1は、どちらも⌊log⁡10N⌋\lfloor\log_{10}N\rfloorを求める計算です。N≥1N\ge1のときは⌊log⁡10N⌋≥0\lfloor\log_{10}N\rfloor\ge0であり、その値に11を足したものが整数部分の桁数です。0<N<10<N<1のときは⌊log⁡10N⌋<0\lfloor\log_{10}N\rfloor<0であり、その符号を変えたものが、00でない数字が最初に現れる小数の位です。

前提記事