「あるホテルでは客室番号に”4”、”6”、”9”を使用しない。このとき次の問いに答えよ。
(1)小さい順で45番目の客室番号は何番か?
(2)小さい順で300番目の客室番号は何番か?
(3)”258”号室の客室は小さい順で何番目か?」
このような問題はどのように解けばよいのでしょうか?
この問題を解くには繰り上がりに着目します。
(1)
通常、”0”から”9”までの10個の数字が使用されていれば10室ごとに十の位へ繰り上がります。
しかし、”4”、”6”、”9”を使用しない、すなわち7個の数字しか使用しない場合は7室ごとに十の位へ繰り上がることになります。
しかし、”4”、”6”、”9”を使用しない、すなわち7個の数字しか使用しない場合は7室ごとに十の位へ繰り上がることになります。
そこで45番目の客室までに何回十の位へ繰り上がるのかを調べると
45\div7=6\ 余り3
となるので、6回繰り上がり一の位が3増えることがわかります。
このことから十の位は”6”となりますが、ここで使用しない数字を考えると”4”と”6”が使用されていないので十の位が”6”より2つ分ずれるため、20を足します。
したがって、十の位への繰り上がり回数6と十の位の欠番による調整の20と余りの3より
10\times6+20+3=83
45番目の客室番号は”83”であることがわかります。
何回1つ上の桁に繰り上がるかを求める方法はn進数への変換方法の考え方です。
この問題の場合は7個の数字しか使用しないため、7進数の問題と見ることができます。
ただし、通常の7進数は”7”、”8”、”9”を使用しないのですが、この問題では使用しない数字が4”、”6”、”9”になっているので、少し変わった7進数となります。
(2)
(1)と同様に解き、7進数ではどうなるのかを求めます。
300\div7=42\ 余り6
より、十の位へは42回繰り上がることがわかります。また、余りより一の位は6です。
百の位への繰り上がりは十の位への繰り上がり42回のうち
42\div7=6
6回行われます。このとき、余りは0なので十の位は0となります。
以上より、7進数では
100\times6+10\times0+6=606
となり、上の対応表にしたがって変換すると客室番号は”808”であることがわかります。
対応表を使用しない場合は、”4”と”6”が使用されていないことから百の位と一の位がそれぞれ”6”から2つ分ずれるため202を加えて客室番号が”808”となることがわかります。
(3)
(1)、(2)とは逆の手順で求めます。
対応表より元となる7進数は246であることがわかります。
対応表より元となる7進数は246であることがわかります。
百の位は2なので、2回十の位から繰り上がっているので
7\times2=14
一の位からの繰り上がりは上の14と十の位の4の和18回なので、
7\times18=126
これに一の位の6を加えた132が客室番号を10進数に変換したものなので、”258”号室は小さい順で132番目であることがわかります。
一度の計算で変換するには十の位の数は7倍、百の位は7倍の7倍、つまり49倍、…というように一の位から離れている分だけ各桁に7を掛けます。
\begin{align*}2\times7^2+4\times7+6&=2\times49+4\times7+6\\[0.5em]&=98+28+6\\[0.5em]&=132\\end{align*}
Share: