数学A / 整数の性質

n進法の変換(整数と小数)

★★ 標準n進法

問題

次の変換をせよ。

(1) 進法で表された 進法で表せ。

(2) 進法の小数 を、 進法の分数で表せ。

ヒントを見る

(1)は各桁に位の重み()をかけて足す。(2)小数の各位は右へいくほど と小さくなる。それをかけて足す。

解答・解説

方針

整数部分は位の重みを左へ大きくして()かけて足す。小数部分は位の重みを右へ小さくして()かけて足す。

解答

⓪ 発想 — どう考え始めるか。 進法の数は「位の重み」の約束ごとにすぎない。整数部分は右から ( 進法なら)、小数部分は左から ( 進法なら)。

各桁に重みをかけて足すだけで、 進法に戻る。

小数側の重みが「割る」方向に進むことだけが新しい。整数と小数で、重みの進む向きが逆になる対称性を意識しておくと迷わない。

公式 進法 → 10進法:位の重み をかけて和

(1) 進法の位の重みは、右から は右から なので

(2) 小数点以下の位の重みは、左から は小数第1位から なので

(整数部分は重みが左へ大きく、小数部分は右へ小さくなる — 対称的だ。)

発展 — 一歩先へ。 「左から巻き込む」計算は、多項式の値を速く求めるホーナー法(組立除法の親戚)と同じものだ。 進法の数は「 を変数とみた多項式に を代入した値」なので、多項式の道具がそのまま使える。

進法はコンピュータの、 進法はカラーコード(#FF6600 など)の言葉だ。位取り記数法の原理が分かっていれば、何進法が来ても同じ2つの向き(重みの表・巻き込み)で処理できる。

(1) (2)

別解

(1)は、重みの表を作らずに「左から巻き込む」計算もできる。

先頭の桁から順に、「今までの値を 倍して、次の桁を足す」を繰り返すのだ。

桁を1つ読むたびに全体が「1桁分だけ左へずれる= 倍される」ので、この巻き込みで重みが自動的に付く。桁数が多いときは、大きなべき乗()を書かずに済むのが利点だ。

(2)は、小数点を「持ち上げる」と見通しがよい。 で割ったもの。 だから 。整数の変換に帰着させる作戦である。

ポイント

  • 整数部分:位の重みは右から
  • 小数部分:位の重みは左から
  • 各桁 × 重み をすべて足す

よくある間違い

  • 小数の重みを でなく整数の重みで計算する
  • 桁の並び(左右)と重みの対応を取り違える
  • 巻き込み計算で「掛けてから足す」の順序を逆にする(足してから掛けると別の数になる)