解法のポイント
- 2桁の2進数 x1x2 を10進数の式で表すと x=2x1+x2 となることを理解する。
- 逆順にした2進数 x2x1 を10進数で表すと y=2x2+x1 となる。
- int(2x) が何を表すか(x1 であること)を見抜く。
解説
2進数 x1x2 を10進数で表すと、x1 は2の位、x2 は1の位なので、
x=2x1+x2
と表すことができます(x1,x2 はともに 0 または 1)。
求めたいのは 2進数 x2x1 が表す整数なので、これを y とおくと、
y=2x2+x1
となります。この y を x を用いて表します。
ここで、int(2x) について考えます。
2x=22x1+x2=x1+2x2
x2 は 0 または 1 なので、2x2 は 0 または 0.5 です。
int(r) は小数点以下を切り捨てた整数を表すため、
int(2x)=x1
となります。
x1=int(2x) とわかったので、これを x=2x1+x2 に代入して x2 について解くと、
x2=x−2x1=x−2int(2x)
となります。
最後に、y=2x2+x1 に x1 と x2 を代入します。
y=2(x−2int(2x))+int(2x)
y=2x−4int(2x)+int(2x)
y=2x−3int(2x)
よって、正解は ウ です。
各選択肢の解説
具体例として、2進数 10 (x1=1,x2=0)の場合を考えてみます。
このとき、x=2 となり、求めたい 2進数 01 が表す整数は y=1 です。
また、int(2x)=int(1)=1 となります。
これらを各選択肢の式に代入して、1 になるかを確認します。
- ア: 2(2)+4(1)=8=1 となり誤りです。
- イ: 2(2)+5(1)=9=1 となり誤りです。
- ウ: 2(2)−3(1)=1 となり、結果が一致するため 正解 です。
- エ: 2(2)−4(1)=0=1 となり誤りです。