整数の性質|n進法の小数について

12/23/2018数学A循環小数,整数の性質,n進法

今回はn進法の小数について学習しましょう。小数も2進法や3進法で表すことができます。整数のときと同じように決まった手順があるので、演習をこなしてマスターしましょう。

10進法で表される小数や分数について

この単元では、分数が有限小数や循環小数で表される条件や、分数が記数法の底によって有限小数で表されたり、循環小数で表されたりすることを学習します。まずは、日頃から用いている10進法での小数や分数について確認しておきましょう。

この単元では、10進法で表される小数として、有理数に分類されるものを扱います。有理数については「数と式」の単元ですでに学習しています。

有理数とは整数、有限小数、循環小数などの分数で表すことのできる数でした。

有理数の分類

  • 整数
  • 有限小数 … 小数第何位かで終わる小数。分母nの素因数は2,5のみ。
  • 循環小数 … 無限小数のうち、いくつかの数字の配列が繰り返されるもの。分母nの素因数は2,5以外のものがある。

整数や有限小数はもちろんですが、循環小数は分数で表すことのできる数です。特に、循環小数を扱った問題は頻出なので、循環小数のことを忘れている人は復習しておきましょう。

分数と小数の関係

10進法で表される分数を小数で表すとき、有限小数と循環小数のどちらになるのかを分母の素因数によって判断することができます。

一般に以下のようなことが成り立ちます。

分数が有限小数や循環小数で表される条件

\begin{align*} &\text{$\frac{m}{n}$ を整数でない既約分数とすると、} \\[ 7pt ] &\text{① 分母 $n$ の素因数は $2 \ , \ 5$ だけからなる} \\[ 7pt ] &\text{$\quad$ ⇔ $\frac{m}{n}$ は有限小数} \\[ 10pt ] &\text{② 分母 $n$ の素因数は $2 \ , \ 5$ 以外のものがある} \\[ 7pt ] &\text{$\quad$ ⇔ $\frac{m}{n}$ は循環小数} \end{align*}

既約分数とは、これ以上約分のできない(すでに約分が終わった)分数のことです。たとえば、以下のような問題が出題されます。

例題

$n$ を自然数とする。分数 $\frac{19}{n}$ の分子を分母で割ると、整数部分が $1$ 以上の有限小数となるような $n$ は何個あるか。

分母の素因数によって、分数が有限小数や循環小数になることが分かるので、それで判断します。分数が有限小数になるには、分母の素因数が2,5だけからなることが条件です。ただし、整数部分が1以上になることにも注意します。

例題の解答例

\begin{align*} &\text{$\frac{19}{n}$ の整数部分は $1$ 以上であるので} \\[ 5pt ] &\quad \frac{19}{n} \gt 1 \\[ 5pt ] &\text{これと $n$ が自然数であることから} \\[ 5pt ] &\quad 1 \lt n \lt 19 \quad \text{…①} \\[ 5pt ] &\text{また、有限小数になるには、分母 $n$ の素因数が} \\[ 5pt ] &\text{$2 \ , \ 5$ だけからなればよい。} \\[ 5pt ] &\text{よって、①の範囲を満たす $n$ は、} \\[ 5pt ] &\quad n = 2 \ , \ 4 \ , \ 5 \ , \ 8 \ , \ 10 \ , \ 16 \\[ 5pt ] &\text{の $6$ 個である。} \\[ 5pt ] \end{align*}

分母の条件を覚えていなければ、nに値を代入して吟味すれば求めることはできます。ただ、このやり方だと時間が掛るので、入試では時間に余裕があるときにしましょう。

10進法で表される小数や分数について復習できたところで、次は記数法の変換について確認しましょう。

n進法の小数

記数法を変換するためには、記数法で書き表された数の意味や位について、いくつか覚えておかなければなりません。

たとえば、10進法で0.123と書き表された小数は、以下のような意味をもっています。

10進法で書き表された小数の意味と位

\begin{align*} &\text{$10$ 進法で $0.123$ と書き表された数は、} \\[ 5pt ] &\quad \frac{1}{10^{\scriptsize{1}}} + \frac{2}{10^{\scriptsize{2}}} + \frac{3}{10^{\scriptsize{3}}} \\[ 5pt ] &\text{を意味する。} \\[ 5pt ] &\text{また、小数点以下の位は} \\[ 5pt ] &\quad \text{$\frac{1}{10^{\scriptsize{1}}}$ の位、$\frac{1}{10^{\scriptsize{2}}}$ の位、$\frac{1}{10^{\scriptsize{3}}}$ の位} \\[ 5pt ] &\text{となる。} \end{align*}

このことはn進法で書き表された小数でも成り立ちます。

n進法で書き表された小数の意味と位

\begin{align*} &\text{$n$ 進法で $0.abc_{\scriptsize{(n)}}$ と書き表された数は、} \\[ 5pt ] &\quad \frac{a}{n^{\scriptsize{1}}} + \frac{b}{n^{\scriptsize{2}}} + \frac{c}{n^{\scriptsize{3}}} \\[ 5pt ] &\text{を意味する。} \\[ 5pt ] &\text{また、小数点以下の位は} \\[ 5pt ] &\quad \text{$\frac{1}{n^{\scriptsize{1}}}$ の位、$\frac{1}{n^{\scriptsize{2}}}$ の位、$\frac{1}{n^{\scriptsize{3}}}$ の位} \\[ 5pt ] &\text{となる。} \end{align*}

注意したいのは、整数では位が大きくなれば、それに伴ってnの累乗の指数は大きくなりますが、小数では逆になります。小数では位が大きくなれば、それに伴ってnの累乗の指数は小さくなります。

記数法の変換

n進法から10進法への変換

記数法の変換を扱った問題は、小数でも基本的な問題の1つです。記数法を変換するには、底とした数を用いて位取りしたことを利用します。

たとえば、5進数0.1021(5)を10進法の数に変換してみましょう。底が5であるので、0.1021(5)は5の累乗を用いて位取りされた数字の配列です。位取りするときの式に戻します。

5進法から10進法への変換 1⃣

\begin{align*} &\text{$0.1021_{\scriptsize{(5)}}$ は} \\[ 5pt ] &\quad \frac{1}{5^{\scriptsize{1}}} + \frac{0}{5^{\scriptsize{2}}} + \frac{2}{5^{\scriptsize{3}}} + \frac{1}{5^{\scriptsize{4}}} \\[ 5pt ] &\text{を意味する。} \end{align*}

位取りするときの式に戻せたら、分数を整理します。

5進法から10進法への変換 2⃣

\begin{align*} &\quad \vdots \\[ 5pt ] &\quad \frac{1}{5^{\scriptsize{1}}} + \frac{0}{5^{\scriptsize{2}}} + \frac{2}{5^{\scriptsize{3}}} + \frac{1}{5^{\scriptsize{4}}} \\[ 5pt ] &\quad \vdots \\[ 5pt ] &\text{これを整理すると、} \\[ 5pt ] &\quad \frac{1 \cdot 5^{\scriptsize{3}} + 2 \cdot 5 + 1 }{5^{\scriptsize{4}}} = \frac{136}{625} \end{align*}

分数を1つにまとめたら、分子を分母で割る割り算をして、小数で表します。この小数が10進法で表された数です。

5進法から10進法への変換 3⃣

\begin{align*} &\quad \vdots \\[ 5pt ] &\quad \frac{1 \cdot 5^{\scriptsize{3}} + 2 \cdot 5 + 1 }{5^{\scriptsize{4}}} = \frac{136}{625} \\[ 5pt ] &\text{よって、求める小数は、} \\[ 5pt ] &\quad 0.1021_{\scriptsize{(5)}} = 0.2176 \end{align*}

0.1021(5)を10進法で表された数に変換すると、有限小数0.2176となることが分かりました。n進法から10進法への変換手順をまとめると以下のようになります。

n進法から10進法への変換手順

  1. n進法で書き表された数を、nで位取りしたときの式で表す。
  2. 分数を通分して1つにまとめる。
  3. 分子を分母で割る割り算をして、小数で表す。

整数のときと異なるのは、分数の計算になったくらいです。記数法で書き表された数の意味と位をしっかり覚えておけば、機械的に変換できます。

10進法からn進法への変換

次は、10進法からn進法への変換です。たとえば、10進数0.375を2進法で表してみましょう。

底は2であるので、2の累乗を用いて位取りすれば、2進法に変換することができます。

10進数0.375を2進法で表す 1⃣

\begin{align*} 0.375 &= \frac{375}{1000} \\[ 5pt ] &= \frac{3 \cdot 125}{8 \cdot 125} \\[ 5pt ] &= \frac{3}{8} \\[ 5pt ] &= \frac{2 + 1}{2^{\scriptsize{3}}} \\[ 5pt ] &= \frac{1}{2^{\scriptsize{2}}} + \frac{1}{2^{\scriptsize{3}}} \\[ 5pt ] &= \frac{0}{2^{\scriptsize{1}}} + \frac{1}{2^{\scriptsize{2}}} + \frac{1}{2^{\scriptsize{3}}} \end{align*}

分数の分子から各位の数字が分かるので、数字を順に抜き出して小数点以下に並べます。

10進数0.375を2進法で表す 2⃣

\begin{align*} &\quad 0.375 = \frac{0}{2^{\scriptsize{1}}} + \frac{1}{2^{\scriptsize{2}}} + \frac{1}{2^{\scriptsize{3}}} \\[ 5pt ] &\text{より、$10$ 進数 $0.375$ を $2$ 進法で表すと、} \\[ 5pt ] &\quad 0.375 = 0.011_{\scriptsize{(2)}} \end{align*}

このように位取りするときの式を立式できれば、記数法の変換が可能です。しかし、式変形が面倒です。

10進法で表される小数や分数を、n進法で表される数に変換するとき、底nを掛ける掛け算を繰り返す方法で機械的に変換します。

10進数からn進数への変換を機械的にする方法

  • 整数であれば、底nで割る割り算を繰り返す
  • 小数や分数であれば、底nを掛ける掛け算を繰り返す

10進数0.375に2を掛けます。この後は、積の小数部分に2を掛ける掛け算を繰り返します。2を掛ける掛け算は、小数部分が0になったら終了です。

10進数0.375を2進法で表す(別解) 1⃣

\begin{align*} \quad 0.375 \times 2 &= 0.750 \\[ 5pt ] \quad 0.750 \times 2 &= 1.50 \\[ 5pt ] \quad \underline{0.50} \times 2 &= 1.0 \end{align*}

2回目の掛け算の積は1.50となったので、1.50ではなく、小数部分0.50に2を掛ける掛け算をします。3回目の掛け算で小数部分が0となったので終了です。整数部分を上から順に小数点以下に並べると変換後の小数になります。

10進数0.375を2進法で表す(別解) 2⃣

\begin{align*} &\text{積の整数部分は上から順に} \\[ 5pt ] &\quad 0 \ , \ 1 \ , \ 1 \\[ 5pt ] &\text{となるので、} \\[ 5pt ] &\quad 0.375 = 0.011_{\scriptsize{(2)}} \end{align*}

実際には以下のように下に掛け算する筆算で求めます。

10進法から2進法への変換の例

この例では、小数部分は0になりましたが、必ずしも0になるとは限らないので注意しましょう。例では、小数部分が0になったので、変換後の数は有限小数になることが分かります。

10進法からn進法への変換手順は以下のようになります。

10進法からn進法への変換手順

  1. 10進法で書き表された数に、nを掛ける。
  2. 積の小数部分にnを掛ける掛け算を繰り返す。
  3. 小数部分が0になったら、積の整数部分を上から順に抜き出して小数点以下に並べる。

この手順通りに掛け算していけば、10進法からn進法へ変換することができます。なお、手順を忘れたときのために、以下のことを覚えておきましょう。

記数法の変換では、

(10進法で表される数)⇔(底で位取りするための式)⇔(n進法で表される式)

の関係がある。底で位取りするための式が介在するので、底を掛ける掛け算を忘れても、立式できれば何とかなる。

次はn進法の小数を扱った問題を実際に解いてみましょう。