ヒットアンドブロー

問)
ヒット&ブローというゲームがあります。
出題者が、0〜9までの4つの数字を考えます。
回答者は、数字を予想して、あっているかどうか尋ねます。
出題者は、
数字が同じ場所にあればヒット(H)
数字が違う場所にあればブロー(B)
ひとつも同じ数字がなければファウル(F)
と答えます。
例えば、出題者の考えた数字が1357、回答者の予想した数字が1234であれば、1が同じ場所にあり、3が違う場所にあるので、1H1Bと答えます。

予想した数字に対し、次のような回答が得られたとします。
1234⇒1H1B
5678⇒1B
6284⇒2H1B
9573⇒F
6240⇒2H1B
出題者の考えた数字はなんでしょうか?

答)
全て選択(Ctrl+A)すると答えを見ることができます。

答えは4280です。

マトリックスを作って考えてみれば分かります。

まず、9573がFなのでこれらの数字はひとつも含まれていません。
また、1234と5678をあわせて3つの数字が含まれているため、0は確実に含まれます。

●0
?1
?2
×3××××
?4
×5××××
?6
×7××××
?8
×9××××

6284に3つの数字が含まれているため、1は含まれていないことが分かります。
6240で3つの数字が含まれているので、8は確実に含まれています。この時点で、6は含まれていないことが分かります。
後は並び順です。

●0
×1××××
?2
?4
×6××××
●8    

1234で1H1Bだったのが、6284で2H1Bに増えているため、8は3番目の数字であることが分かります。

●0  ×
●2  ×
●4  ×
●8××○×

6240で2H1Bとなっていますが、3番目の4は明らかにBなので、2と0は正しい位置にあることが分かります。

●0×××○
●2×○××
●4 ×××
●8××○×

答えは4280であることが分かりました。