【平成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進数の変換は、類題で示したやり方を理解して いれば十分である。出題数から言って、決して軽視できない領域なのだが、 変換の仕方さえ覚えておけば、後は応用力の問題である。出題側は目先を 変えてくるだけに、ポイントを見抜く必要がある。一見しただけでは、 難しく感じるが、解いてみるとたいして難しくないことが多いので、とにかく よく考えてみることである。 ---------------------------------------------------------------------- 【カラム】 「同一/類似問題の出題」 二種試験では、過去問と同一または類似問題の出題がなされることが結構ある。 過去問対策が重要になるわけである。 特に本問のような知識問題の類であると、出題の幅が狭くならざるを得ず、 似たような問題が出題されることになる。 問題のみならず、問題に対する考え方を理解しておかないと役には立たない。 解法の理解を最優先にすべきである。 |