AP過去問 令和5年度秋期 午前 問1
AP過去問 令和5年度秋期 午前 問2次の問題へ
問1(問題文)
2けたの2進数x1x2が表す整数をxとする。2進数x2x1が表す整数を、xの式で表したものはどれか。ここで、int(r)は非負の実数rの小数点以下を切り捨てた整数を表す。
ア 2x+4int(x2)
イ 2x+5int(x2)
ウ 2x-3int(x2)
エ 2x-4int(x2)
回答・解説
ひっくり返した結果を演算できる式はどれ?みたいな問題ですが、華麗なる演算で解く方法と、泥臭く全通り代入して、題意のとおりになる式を見つける方法があります。まぁ2桁(4通り)なら泥臭くいきましょうか?東大とか出た頭脳明晰派の人には信じられないやり方だと思います。
まず、ひっくりかえした値とはどういうことか?
00 = 0 ひっくりかえしても00 = 0
01 = 1 ひっくりかえして、10 = 2
10 = 2 ひっくりかえして、01 = 1
11 = 3 ひっくりかえしても11 = 3
こういう対応関係になる演算かどうかを確かめるということです。このことにも気づけない人はもう無理です。東大とか、それ以前です。
では各選択肢に順番に入れて確かめてみましょう。答えがエだった場合が一番ロスしますが、仕方ないです。そこは運。
2x+4int(x2)
2*0 + 4 * int(0/2)なんで0ですね。
2*1 + 4 * int(1/2)なんで2 + 0で2ですね。いいっすね。
2*2 + 4 * int(2/2)なんで4 + 4で8ですね。はいダメー。
次いきましょ。時間もったいないっすからね。
2x+5int(x2)
2*0 + 5 * int(0/2)なんで0ですね。
2*1 + 5 * int(1/2)なんで2 + 0で2ですね。いいっすね。
2*2 + 5 * int(2/2)なんで4 + 5で9ですね。はいダメー。
次いきましょ。時間時間…
2x-3int(x2)
2*0 - 3 * int(0/2)なんで0ですね。
2*1 - 3 * int(1/2)なんで2 - 0で2ですね。いいっすね。
2*2 - 3 * int(2/2)なんで4 - 3で1ですね。お、いいすね。
2*3 - 3 * int(3/2)なんで6 - 3で3ですね。お、やりました!ウ!正解はウー!
したがって
ウ
が答えです。
ってな感じでやっぱり1問目は心、折りに来てますが、これは理論的に泥臭く戦える1問目でよかったです。東大レベルの知能をもっている人は以下のように解くそうです。
まず2桁の二進数の各桁ごとの重みを考慮した二進数を10進に変換する式は以下の通りです。
x=2x1+x2
これって10進数の場合は
n=1000n1+100n2+10n3+n4
みたいな事をあらわす式ですよ。
これのx1って、int(x2)にしても大丈夫ってことに気づけるかどうかです。
これに気づけるのが東大レベルらしい。適当なこと言ってる。らしい。
x=2int(x2)+x2。わかる?この置き換えしても、0、1のときは0で2、3のときに1になるから正しいです。
x1=int(x2)です。
したらば、x2=x−2int(x2)ってことなのです。
ということは、
2x2+x1にというひっくり返した値を求めた値で代入したら、xだけで表現できるわけです。ね。x1とx2をxで表現するということです。
さて、さっそく代入してみましょう。
2×(x−2int(x2))+int(x2)計算すると
2x−4int(x2)+int(x2)まとめると
2x−3int(x2)
となります。まぁ天才的な発想力が必要になります。普段からひっくり返す操作に慣れていないとこの計算は無理だと思います。あるいは東大に行くぐらいの頭脳ならその場で思いつく可能性すらありますが、管理人の知るところではありません。
AP過去問 令和5年度秋期 午前 問2次の問題へ