問9


【平成11年春期の問題より】

問9 小数の表現に関する記述のうち、正しいものはどれか。 

ア 2進数でけた数が有限な小数を10進数に変換すると,有限けたで
  表現できない。
イ 2進数でけた数が有限な小数を10進数に変換すると,有限けたで
  表現できるとは限らない。
ウ 10進数でけた数が有限な小数を2進数に変換すると,有限けたで
  表現できない。
エ 10進数でけた数が有限な小数を2進数に変換すると,有限けたで
  表現できるとは限らない。
----------------------------------------------------------------------
【正解】エ
----------------------------------------------------------------------
【解法】
 平成8年秋期の問5で同一の問題が出題されている。
 二種のN進数問題としては難問の部類に属する。(ちなみに平成10年の
一種試験の午前問2に同種の問題が出題されている。)N進数の原理的な
点を突いており、決して悪問愚問の類ではないが、二種の午前問題に出題する
ことには疑問が残る。

 まずN進数の小数表現についておさらいをしておく。
日頃使い慣れている10進数とのアナロジーでとらえておくのがよかろう。

0.1234
  ↑↑↑↑
  ABCD

 いうまでもなくAの桁は小数点第一位と呼ばれ、0.1あるいは1/10の
位となる。Bは0.01あるいは1/100の位である。
 つまり、べき乗を^で表すと、

 A 1/10                   =1/(10^1)
 B 1/100  =1/(10×10)      =1/(10^2)
 C 1/1000 =1/(10×10×10)   =1/(10^3)
 D 1/10000=1/(10×10×10×10)=1/(10^4)

となる。Cならば小数点第三位であると同時に1/(10^3)の位である。
この考え方がN進数全てに共通している。
 たとえば2進数ならば、

0.1111
  ↑↑↑↑
  ABCD

 A 1/(2^1)=1/2
 B 1/(2^2)=1/4
 C 1/(2^3)=1/8
 D 1/(2^4)=1/16

よって上記の2進数は、10進数で表すと、

 1/2+1/4+1/8+1/16
=0.5+0.25+0.125+0.0625
=0.9375

となる。

 さて、10進数の場合には、「けた数が有限な小数」は、右辺に注意
すればわかるように、
   1/4 =0.25=25/100
   1/10=0.1 = 1/10
分母が10のべき乗(10,100,1000,・・・)で表されるような
分数になっている。
 この考え方はN進数でも適用できる。つまり、Nのべき乗で表される分母を
持った分数で表される数がN進数のけた数が有限な小数(有限小数)となる。
 2進数で例を示そう。

 2進数   10進数  分数表現
  ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
 0.001 0.125 1/8=1/(2^3)
 0.01  0.25  1/4=1/(2^2)
 0.011 0.375 3/8=3/(2^3)
 0.1   0.5   1/2=1/(2^1)
 0.101 0.625 5/8=1/(2^3)
 0.11  0.75  3/4=3/(2^2)
 0.111 0.875 7/8=7/(2^3)

 2進数でけた数が有限な小数を10進数に変換する場合を考えよう。
2進数のけた数が有限な小数(有限小数)は必ず、

 n/(2^m)

の形で表される。ということは、分母分子に(5^m)をかけることで、

 n/(2^m)=(n×(5^m))/((2^m)×(5^m))
        =(n×(5^m))/(10^m)

という関係が成り立つ。上記の例で言うと、2進数の0.001は10進数の
分数表現では、1/8=1/(2^3)となるので、分母分子に125
(=5^3)をかけて
   1/8=125/(8×125)=125/1000
となる。
               分母分子に
 2進数   分数表現     かける数 結果
  ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 0.001 1/(2^3)  125  125/1000
 0.01  1/(2^2)   25   25/100
 0.011 3/(2^3)  125  375/1000
 0.1   1/(2^1)    5    5/10
 0.101 1/(2^3)  125  625/1000
 0.11  3/(2^2)   25   75/100
 0.111 7/(2^3)  125  875/1000

という具合である。つまり「2進数でけた数が有限な小数を10進数に変換」
すると,必ず有限けたで表現できる。したがって、選択肢アとイは誤りである。

 次に、10進数でけた数が有限な小数を2進数に変換したときにどうなる
かを見てみる。原理は同じである。分母が10のべき乗で表される分数が、
分母が2のべき乗で表される分数で表現できるかどうかである。できれば有限
けたで表現できる(有限小数)し、できなければ有限けたでは表現できない
(無限小数)。
 勘のいい人は気付いたかもしれない。簡単な2つの例で説明しよう。1/10
と5/10である。ともに10進数では有限小数で表される。0.1と0.5で
ある。さて、これを分母が2のべき乗である分数にできるであろうか。

 1/10=1/(2×5) 分母の5が邪魔でできない → 無限小数
 5/10=5/(2×5)=1/2 分母が2のべき乗 → 有限小数

つまり分数を約分する過程で分母から5が無くなれば、2進数で有限小数に
なるのである。それ以外は無限小数になる。
したがって、正解は「エ 10進数でけた数が有限な小数を2進数に変換する
と,有限けたで表現できるとは限らない。」となる。
----------------------------------------------------------------------
【過去5回の中の類題】
(平成10年春期 問7)
問7 10進数の111を8けたの4進数として表したものはどれか。

 ア 00001233 イ 00003321 ウ 00011010 エ 01101111

【正解】ア
【解法】
 10進数を任意のN進数にするときの標準的なやり方をとる。これも中学で
やったはずである。

 111÷4=27 あまり 3
  27÷4= 6 あまり 3
   6÷4= 1 あまり 2
   1÷4= 0 あまり 1

よって、10進数の111は4進数の1233となるのでアが正解となる。

 なぜ、こうなるかという理屈を述べておく。「解ければいい」という
方は読まなくても問題ない。
この問題の場合は、まず111を4進数の「4」で割る。そうすると
答えが27で余りが4ということになる。これを数式で表せば、
 111=27×4+3
となる。さらに27を4で割れば6あまり3となるので、
 27=6×4+3
となる。この2つの式を組み合わせると、
 111=(6×4+3)×4+3
となる。以下同様に繰り返すと、
 6=1×4+2
 1=0×4+1
となるため、
 111=(((0×4+1)×4+2)×4+3)×4+3
    =0×4^4+1×4^3+2×4^2+3×4+3
      ̄      ̄      ̄      ̄    ̄
下線をつけたところが4進数表現で各桁に表れてくる数字である。

 一方、 手間はかかるが、確実な解法として、逆にN進数の数から
10進数を計算して、合っているものが正解というやり方もある。
 この問題の場合には、4進数なので、
   1番右の位    ×    1
 + 右から2番目の位 ×    4
 + 右から3番目の位 ×   16(=4の2乗)
 + 右から4番目の位 ×   64(=4の3乗)
 + 右から5番目の位 ×  256(=4の4乗)
 + 右から6番目の位 × 1024(=4の5乗)
 + 右から7番目の位 × 4096(=4の6乗)
 + 右から8番目の位 ×16384(=4の7乗)
で計算できる。

ア 00001233
 3×1+3×4+2×16+1×64      =111
イ 00003321
 1×1+2×4+3×16+3×64      =249
ウ 00011010
 0×1+1×4+0×16+1×64+1×256=304
エ 01101111
 1×1+1×4+1×16+1×64+0×256+
 1×1024+1×4096          =5205

以上よりアが正解。
----------------------------------------------------------------------
【傾向と対策】
 数学・論理関連問題全般の出題状況及びN進数の問題の出題状況は問4で
示した通りである。
 N進数問題の出題状況を再掲する。

平成11年春期 問4 16進数     小数表現
        問8 2進数      桁数
        問9 2進数      小数表現 <本問>
平成10年秋期 問6 2進数      小数表現
平成10年春期 問7 4進数      10進→4進変換 <類題>
        問8 5進数・3進数
平成 9年秋期 出題なし
平成 9年春期 出題なし
平成 8年秋期 問4 2進数・16進数 加算,10進変換
        問5 2進数・10進数 小数表現 <本問と類似>
        問7 2進数・8進数  桁数

 整数値の10進数←→N進数の変換は、類題で示したやり方を理解して
いれば十分である。出題数から言って、決して軽視できない領域なのだが、
変換の仕方さえ覚えておけば、後は応用力の問題である。出題側は目先を
変えてくるだけに、ポイントを見抜く必要がある。一見しただけでは、
難しく感じるが、解いてみるとたいして難しくないことが多いので、とにかく
よく考えてみることである。
----------------------------------------------------------------------
【カラム】 「同一/類似問題の出題」

 二種試験では、過去問と同一または類似問題の出題がなされることが結構ある。
過去問対策が重要になるわけである。
 特に本問のような知識問題の類であると、出題の幅が狭くならざるを得ず、
似たような問題が出題されることになる。
 問題のみならず、問題に対する考え方を理解しておかないと役には立たない。
解法の理解を最優先にすべきである。