位取り記数法(n進法シリーズ)とその周辺第二回

この記事では、前回「n進法と10進法の変換と四則演算(第1回)」の続編として、

1ランクアップしたn進法の一般化や、それを利用した本格的な問題を解いていきます。

前半でn進法の振り返りを行い、中盤では第1回と少し違う方法でn進数⇔10進数の変換方法を解説します。

(復習)n進法と繰り上がり

まず、n進法の意味を簡単に復習しておきましょう。

「n進法:0からn-1までのn種類の数を用いて表される」

たとえば10進法について考えてみると、この時n=10であり、0~9までの10種類の数字を用いています。

つぎに、この10進法の下で、0から一つづつ数を数えてみると

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12・・・

この数字の並びの中で、最も注目すべきところは、”9”から”10”になる部分です。

ここで、1ケタから2ケタに「繰り上がり」が起こっています。

n進数における繰り上がりとは?

この繰り上がりというのは10進数の場合、9と0の間で起こります。

これが10進法以外の場合、つまりnが10以外の数の場合は繰り上がる境目の値が変わります。

たとえば、n=6の場合、つまり6進法のときを考えてみると、数を表記するために使うことのできる数字は0, 1, 2, 3, 4, 5の合計6種類です。

10進法と同様に、6進法でも数を数えてみると、

0, 1, 2, 3, 4, 5……

このあと、「6」とならず、”繰り上がる”ことが「n進法のポイント」でした。

つまり、6進数において5の次の数は10進数の時と同様、「左に新たな位を作る」という操作を行います。

言い換えるならば10進数での「10の位」の代わりに「6の位」を作るわけです。

そして、次に55(6)まで来ると「36(6×6)の位」、555(6)まで来ると次は「216(6×6×6)の位」を作っていきます。

ここからは、前回の内容だけでは解きにくい、少しハイレベルな問題を数式で処理するための準備として「n進法の一般化」を解説していきます。

n進法の一般化

では、ここまで見てきたことを一般化してみることにしましょう。

n進法における1の位、nの位、n×nの位……がそれぞれ、a0, a1, a2…...と表されるとき、n進数は次のような式で表されます。

$$a_{k}n^{k}+a_{k-1}n^{k-1}+,,,+a_{2}n^{2}+a_{1}n+a_{0}$$

(ここで、a0, a1, a2…...akはそれぞれ0以上n-1以下の整数)

??となる人は、試しにn=10を代入してみて下さい。

そして、これをakak-1…...a2a1a0といったような形で数を表示するのが、普段私達が見慣れている数の表示となります。(位取り記数法)

n進法・小数ver.

n進法を小数で表記する問題もよく問われます。

意外と盲点なので、ここもきっちりと抑えておきましょう。基本的に整数部分と同じように考えていけば良いです。

先ほどと同様に、10進法で考えていきましょう。

普段小数第1位、第2位、第3位......と言っている部分を、10-1の位、10-2の位、10-3の位・・・ととらえ直します。

つぎに、先ほどn進数を一般化した式を小数部分まで含めて表現してみます。

$$a_{k}n^{k}+a_{k-1}n^{k-1}+,,,+a_{1}n$$

$$+a_{0}+a_{-1}n^{-1}+,,,+a_{-i}n^{-i}$$

(a-i…...a-2, a-1, a0 a1, a2・・・akは先ほどと同様、0以上n-1以下の整数)

中まとめ

n進数の一般式は、始めに理解するのに少し時間がかかるかもしれませんが、一般化して表すことで今後複雑な問題や難関大レベルの問題を解く際に強力な道具となるので、少しずつ慣れていきましょう。

とにかく、n進数で困ったときは「繰り上がりのタイミング」に注目して、落ち着いて考えることが非常に有効です。

計算の仕方を丸覚えするのではなく、ここまでで学んだn進数という表示方法の根本に忠実に学習を進めていきましょう。

n進法の演習問題

さて、ここからは前回の記事で図を書いて行なっていた、『n進数⇔10進数』を上で学習した「一般化」を使って行います。

(習いたての人は前回の方法「n進法と10進法の相互変換(シリーズ第1回)」だけでも良いですが、センター以上のレベルを目指す人はこちらの解き方が今後メインになるので、ぜひ習得してください!)

例題1:10進数→n進数の変換

<例題1>
10進数97を2進数で表すとx、5進数で表すとyとなる。このとき、xとyを求めよ。

 

<解説1>
10進数から2進数、5進数へと変換する、最もオーソドックスな問題です。反射的に解けるようにする必要があります。(前の方法と比べると、計算を頭の中で行なっているため、始めのうちは少し難しく感じるかもしれません。)

<解答1>

25=32、26=64、27=128なので、26が97を2進法で表した時の最大の位である事がわかります。

つぎに、97-64=33 より、25を1つ使い、33-32=1だから24の位から21の位までは使わずに、20の位が1となる事がわかります。

ゆえに、97(10) = 1・26 + 1・25 + 0・24 + 0・23 + 0・22 + 0・21 + 1・20

ここで、係数部分に注目していくと2進数ではx = 1100001と表記されることがわかります。

これと同様に、

97(10) =3・52 + 4・51 + 2・50

したがって、ここでも同様に係数に着目すると、5進数ではy = 342と表記されることがわかります。

例題2:n進数→10進数の変換

<例題2>
203(5)、12345(8)をそれぞれ10進数で表せ。

 

<解説2>
今度はn進数を10進数に直すタイプの問題です。先ほど紹介した、n進数の一般化の式を意識して解いていきましょう。$$a_{k}n^{k}+a_{k-1}n^{k-1}+,,,+a_{2}n^{2}+a_{1}n+a_{0}$$

<解答2>

203(5) = 2・52+ 0・51 + 3・50 = 50 + 3 = 53(10)

12345(8) = 1・84 + 2・83 + 3・82 + 4・81 + 5・80 = 4096 + 1024 + 192 + 32 + 5 = 5349(10)

したがって10進数ではそれぞれ53, 5349と表記されます。

いかがでしょうか、数式が並んでいて始めはややこしいと感じるかと思いますが、やっていることは前回と全く同じです。

例題3:小数で表されたn進数の変換

<例題3>
0.104(5)を10進法の小数で表せ。

<解説4>

先ほどの整数を10進法に直すときと基本的な作業は変わりません。ただし小数なので、小数第1位、第2位、第3位がそれぞれ -1乗、-2乗、-3乗となっていくことを利用します。(5の-1乗は1/5,-2乗は1/25・・・)

<解答4>
0.104(5) = 1・(1/5) + 0・(1/5)2 + 4・(1/5)3 = 0.2 + 0.032 = 0.232(10)

例題4:小数で表された10進数の変換

<例題4>
0.625(10)を2進数で表せ。

<解説4>
これも基本的には整数を10進法に直すときと同じような作業をしていきます。小数でも難しく考える必要は全くありません。

<解答4>

0.625(10) = 1・(1/2) + 0 ・(1/2)2 + 1 ・(1/2)3 = 0.101(2)

(補足すると、始めの 1・(1/2)=0.5で、次の4分の1の位を飛ばして、8分の1の位:1・(1/8)=0.125、よって、0.5+0.125=0.625となります。)

応用問題

今回の総まとめとして、やや難易度の高い応用問題を解いてみましょう。難しければ解答解説へ飛んでみてください。

<問題>
ある自然数Nを5進法で表すと3桁の数abc(5)となり、Nを3倍して9進法で表すと、3桁の数cba(9)となる。このときa, b, cを求めよ。また、自然数Nの値を求めよ。

 

<方針と解答>
まず、底(5進法では5、10進法では10)については、5と9なのでa,b,cのいずれも5以上の値は取れません(一つでも6になってしまうと、5進法で表記できなくなってしまうため)。

したがって、1≦a, b, c≦4

また、条件より
abc(5) = a・52 + b・51 + c・50 = (25a + 5b + c)(10)
cba(9) = c・92 + b・91 + a・90 =( 81c + 9b + a)(10)

cba(9)を10進数に直した数はabc(5)を10進数に直した数の3倍となるので、

3(25a + 5b + c) = 81c + 9b + a <ここでは、右辺、左辺とも10進法です。>

したがって、
74a + 6b = 78c
∴3(13c - b) = 37a

ここで3と37は互いに素より、aは3の倍数であるので、1≦a≦4のうち条件を満たすaは3。

<この辺りの”互いに素”といった整数の解き方は→「整数問題の解法・コツの記事一覧」にまとめています。>

上の式に代入し、両辺を3で割って、13c-b = 37

また1≦b≦4なので、38≦13c≦41であるから13c = 39

よってc = 3, b = 2。

(a,b,c)=(3,2,3)と求まったので、もとの自然数Nは
N = 3・52 + 2・51 + 3・50 = 88・・・(答)

<コメント>

この問題はn進法と整数問題を融合したような形の問題となっています。

センター試験や同等レベルの入試ならばここまで問われることはあまりありませんが、

標準レベル以上の2次試験ではn進法と整数問題を組み合わせて解く問題が度々見られます。

今回のまとめとn進数シリーズ

さて、今回はn進法と10進法の間での変換の問題から、整数問題と組み合わせた応用問題まで幅広く扱いましたが、すこし難しく感じた部分もあったかも知れません。

特に変換の部分に慣れるまでは、何度か類題を探して練習をしてみてください。

反射的に計算できるようになった段階で、最後の問題のような「整数」と絡めた応用問題を解いていきましょう。(次回はやや難易度の高い融合問題を中心に解説していきます)

n進法シリーズ

・第一回:「n進法と10進法の変換と四則演算

・第二回:「今ココです」

・第三回:「n進法の桁数との応用問題と不等式の操り方」(NEW!)

整数問題のまとめ

整数問題を閃きなしで誰でも解けるように解法をまとめました!

素数の意味と使いかた

今回もご覧いただきまして有難うございました。

当サイト「スマナビング!」では皆さんのご意見や、記事のリクエスト、ご質問をお待ちしています。

ぜひ、コメント欄にお寄せください。

また、いいね!や、B!、シェア、公式Twitterのフォローをしていただけると助かります。

Twitterでフォローしよう