小数
小数(しょうすう,decimal)とは、位取り記数法と小数点を用いて実数を表現するための表記法である。
目次
概要
例えば、1425 の百分の一に相当する数は、小数を用いて、
14 | . | 25 |
整数部 | 小数点 | 小数部 |
のように表現する。小数点より左を整数部分と呼んで、右から一の位、十の位の数を記述する。小数点より右は小数部分と呼んで、1 より細かい位として、左から十分の一の位、百分の一の位の数を順に記述する。上に挙げた数の場合には、十の位は「1」、一の位は「4」、十分の一の位は「2」、百分の一の位は「5」となる。より細かい数を表現する場合にはこの後ろに千分の一の位・一万分の一の位と順に位を増やすことで対応することができる。
小数部分の位は、十分の一の位を小数第一位、百分の一の位を小数第二位のように番号で呼ぶことも多い。「小数点以下第n位」と呼ぶこともあるが、この場合の「以下」は小数点自体は含まずに数えることになっているので、「小数第n位」と同じである。
小数の例
小数は長さや重さといったいくらでも細分できる量を表現するのに用いる。
- 五円硬貨の厚さは 1.5 ミリメートル、重さは 3.75 グラム
- 1986年のランディ・バースの打率は 0.389。
- 国の人口密度順リストによると、グリーンランドの人口密度は 1 平方キロメートルあたり 0.03 人である。
- 円周率は円周の長さの直径に対する比率であり、3.14159265… である。
小数の分類
有限小数
上に挙げた例のうち、円周率以外の小数は有限桁の数字で表現されている。このような小数は有限小数と呼ぶ。
無限小数
有限小数では正確に表現できない数が存在する。そのような数を無限桁の小数で表現したものを無限小数と呼ぶ。上に挙げた例では円周率は無限小数でなければ表現できないが、逆に無限小数を用いることによってどんな実数をも表現することができるようになる。ほとんどの場合に異なった無限小数表示は異なった実数を与えるが、0.4999...のように途中から9がずっと続くような表示は9の列の直前の数字を1つ増やして後は0を続けたものと同じ実数を与える(例えば0.4999...と0.5000...は同じ実数を表している)ことに注意しなければならない。0.999...も参照のこと。
循環小数
無限小数のうち、同じ形の数字の並びが無限に繰り返されるものを循環小数と呼ぶ。循環小数は繰り返す部分を指定することで表記する。正式な記法は
- <math>0.142857142857142857\cdots = 0.\dot{1}4285\dot{7}</math>
のように繰り返す部分の初めと終わりにドットを書く。小数第二位以降から繰り返しが始まる場合も
- <math>0.18454545\cdots = 0.18\dot{4}\dot{5}</math>
のように同様に書く。 一つの数字が繰り返される場合は
- <math>0.333\cdots = 0.\dot{3}</math>
- <math>0.1666\cdots = 0.1\dot{6}</math>
のようにドットを一つ書く。
この百科事典においては、メディアの制約により
- 0.{142857}
- 0.18{45}
- 0.{3}
- 0.1{6}
と書く場合もある。
有限小数も循環小数のひとつであり、例えば1/4=0.25000…と0を無限に繰り返す循環小数であるが0の繰り返しは特に明記する必要はなく単に0.25としても良い。
非循環小数
循環しない無限小数を非循環小数と呼ぶ。このような小数は簡単に作ることができて
- 0.101001000100001…
は非循環小数である。
進んだ注意
有限小数はすべて循環小数としても表現できる。
- 1/10 = 0.1 = 0.0999...
小数は、実数を整数 a0 と 0 から 9 までのどれかにあたる an (n ≥ 1) を用いて
- <math>a_0 + \sum_{n=1}^\infty a_n 10^{-n}</math>
のような無限級数の形で表すことであるから、すべての an が一致しなくても極限が一致することはありうるのである。しかし、あるところから先にすべて 0 が続くことがないように循環小数として表せば表現は一意的になる。このためいくつかの場合には(たとえばカントールの対角線論法)、全てを循環小数として表現することが必要になる。
その他の分類
整数部が0である小数を純小数または真小数、それ以外を帯小数と呼ぶ。
進法の取り替え
進法を変えると、小数の表現もまた変わる。n 進法を用いるときに、その小数を [ · ]n と表すことにする。
- 1/5 = [0.2]10 = [0.1]5 = [0.151515...]7
10進法では有限小数として表現できるものが、必ずしも他の進法で有限小数として表現できるとは限らない。その逆もある。ただし進法を変えても循環小数としてなら表現できる。
実数の表現
与えられた実数 <math>x</math> と <math>2</math> 以上の自然数 <math>n</math> に対して、<math>x</math> の <math>n</math> 進無限小数表記を与える無限数列 <math>a_0, a_1, a_2, \cdots </math> の各項の値を決定する二種類の手続きを次のように与える。これらの手続きのどちらを採用してもその表記は一意的に定まるが、<math>0</math> 以外の有限小数に対する無限小数表記は採用した手続きによって異なるものとなる。
一つ目:
- <math> x = 0 </math> であれば、全ての項を <math>0</math> としてここで終了する。
- <math> a_0 = \lceil \operatorname{abs}(x) \rceil {-} 1, \ x' = \operatorname{abs}(x) {-} a_0 \in (0,1] , \ p_1 = 0</math>(<math>\lceil \cdot \rceil</math>:天井関数、<math>\operatorname{abs}(\cdot)</math>:絶対値)とし、<math>i = 1</math> とおく。
- 区間 <math>(p_i, p_i{+}\frac{n}{n^i}]</math> を <math>n</math> 等分し、その両端点と <math>n{-}1</math> 個の等分点を左から <math>s_{i,0}=p_i, s_{i,1}, \cdots, s_{i,j} = p_i {+} \frac{j}{n^i}, \cdots, s_{i,n-1}, s_{i,n}=p_i{+}\frac{n}{n^i}</math> とする。
- <math>j</math> を <math>0</math> から <math>n{-}1</math> まで移動させ、<math>x' \in (s_{i,j}, s_{i,j + 1}]</math> なる <math>j</math> が存在すればそこで <math>j</math> を固定し、<math>a_i = j, \ p_{i+1} = s_{i,j}</math> とした後、<math>i</math> に <math>1</math> を加算して 3. に戻る。
こうして得られた数列 <math>a_n</math> は、<math>1</math> 以降の <math>i</math> に対して <math>0 \le a_i \le n{-}1</math> を満たすから、<math>a_i</math> は <math>n</math> 進法を用いて <math>1</math> 桁の数字で表現できる。ここで、<math>\sgn x</math> を符号関数とし、<math>(\sgn x) a_0</math> の <math>n</math> 進法表記の後に . を付け(これを小数点と呼ぶ)、数字 <math>a_i</math> を列記してできる表記、即ち
- <math>x = (\sgn x)a_0.a_1 a_2 a_3 \dots</math>
という形で無限小数表記が得られた。この手続きによる場合、無限数列 <math>a_i</math> の途中の項から <math>0</math> が無限に続くのは <math>0</math> しかない。
二つ目:
- a0 = [abs x]([・]:ガウス記号)とし、i = 1 とする。
- x' = abs x - a0、p1 = 0 とする。この時、x' ∈ [0,1) である。もし、x' = 0 であれば、残りの項を 0 としてここで終了する。
- 区間 [pi , pi+n1-i) を n 等分し、その両端点と n - 1 個の等分点を左から pi=si,0, si,1, …, si, n-1 , si, n=pi+n1-i とする。
- j を 0 から n - 1 まで移動させ、x' ∈ [sij, si,j + 1) なる j が存在すればそこで j を固定し、ai = j として次に進む。
- もし、x' = sij であれば、残りの項を 0 としてここで終了する。そうでなければ pi+1 = sij とし、i に 1 を加算して (3.) に戻る。
こうして得られた数列 an は、1 以降の i に対して 0 ≤ ai ≤ n - 1 を満たすから、ai は n 進法を用いて 1 桁で表現できる。ここで、(sgn x)を符号関数とし、(sgn x)a0 の n 進法表記の後に . を付け(これを小数点と呼ぶ)、ai を列記していったもの、即ち
- <math>x = (\sgn x)a_0.a_1 a_2 a_3 \dots</math>
とする表現を小数とする。この手続きによる場合、無限数列 an の途中の項から n - 1 が無限に続くことは無い。
但し、小数点以下のある項から 0 が無限に続くようであれば、その位置から 0 を省略し、何も書かなくてよい。特にその項が小数点以下第一位であった場合は小数点も省略して良い。また、そうでない場合は列記していく操作を永久に続けることになるが、実際は不可能である。このような時、省略記号を使って項を省略してよい。(上記「#小数の分類」参照)
小数の起源
バビロニア数学では六十進法の位取り記数法で数字を記述していた。十進法以外を含めるなら、バビロニア数学での数字表記が最古の小数である。ただし現在で言う小数点に相当するものが存在しないため、記述された数字の実際の数値がどうなのかは、前後の文脈から判断しないといけないという問題点があった。
現代の小数と同じ十進法における小数は、記録に残る所では古代中国が最古である。劉徽は263年に九章算術という数学書の注釈本を著しているが、そこに小数の表記が見られる。現代のアラビア数字表記での8.660254を「八寸六分六釐二秒五忽、五分忽之二」と書いている(小数第6位を表す単位が無いため、分数との併記になっている)。
現代の数学の系譜であるヨーロッパの数学においては、小数の導入は遅れた。これはエジプト式分数表記が普及していたためである。ヨーロッパではじめて小数を提唱したのは、オランダのシモン・ステヴィンである。1585年に出版した「十進分数論」のなかで,はじめて小数を発表した。その名が示す通り、分数の分母を10の累乗に固定した場合に、計算が非常にやりやすくなる事を発見し、それが小数の発明となった。なお、ステヴィンの提唱した小数の表記法は、現代の「0.135」であれば、これを「1①3②5③」と表記する。現代のような小数点による表記となったのは、20年ほど後にジョン・ネイピアの提唱による。