トップページイタリア語Windows CE茨木のお店リンク

Hit&Blow 必勝法研究 その1


さて、Hit&Blow に関する考察を続けてみよう。前回の話は半分冗談半分本気の結論で終わらせてしまったが、今回のテーマは「1手目 1234、2手目 5678 はどの程度良い手なのか」という至って実戦的なものである。

(1)Hit&Blow に関する復習

Hit&Blow は2名のプレイヤーが互いに決めた秘密の4桁の数(以降「秘密数」)を当て合うゲームだ。その際、予想した数(以降「予想数」)に対して、桁も数字もあっていれば「Hit」、数字はあっているが桁が異なっていれば「Blow」で答える。
例えば、秘密数が「2739」であるとき、予想数「1234」に対する答えは「1 Hit 1 Blow」(以降「1H1B」)となる。
このルールにより、自然と秘密数も予想数もどちらも各数字を高々1回しか使えないという制限が生じる。

さて、ここでは単純化のため、本来2名で当て合うものを、予想者Aが回答者Bの秘密数を一方的に当てるものとしよう。
Bの秘密数の選び方は 0 から 9 までの十種類の数字から4つを取り出して並べる順列に等しく、その場合の数は

10×9×8×7 = 5040

である。一方、Aの1手目の予想数の選び方も全く同じ 5040 通りだ。
したがって、最初の一回目で運良く当ててしまう確率は 1/5040 である。
ただしBが人間である場合には、「秘密数としてまず選ぶ可能性のない数」(例えば 1234、5678、2468 など)があるので、そのあたりのウェイトをつけて考える必要が本当はあるのだが、単純化のために省く。Bは 1234 も 2649 も同じ割合で秘密数に選ぶ可能性があるとしよう。
すると、1手目は 5040 通りの数のうちどれを選んでも全く同じということになる。そこで 1234 を選んだものとしよう。他の数を選んだ場合は、あらかじめ数字を交換しておくことで以降の話を全く同じように続けることが出来るし、またそもそも実戦において1手目を「1234」にする人は非常に多いであろう。
さてそれでは2手目も何を選んでもあんまり変わりがないかというと、実はそうではないということが前回の内容であった。今回は、では何を選ぶべきかというところに一歩踏み込んでいく。

(2)残り可能性

1手目の予想数 1234 に対する答えが 2H2B であったとしよう。すると、秘密数は 1243, 1324, 1432, 2134, 3214, 4231 のいずれかであり、これら以外ではないことがわかる。これを『答え 2H2B に対する「残り可能性」が6通りである』と言う事にしよう。
他の全ての答えそれぞれに対してもその残り可能性を算出すると、前回も掲載した以下の表のようになる。

答え残り可能性
0H1B1440通り
0H2B1260通り
1H1B720通り
1H0B480通り
0H0B360通り
0H3B264通り
1H2B216通り
2H0B180通り
2H1B72通り
3H0B24通り
0H4B9通り
1H3B8通り
2H2B6通り
4H0B1通り

この「残り可能性」はそのまま「その答えが返ってくる確率」をも示していることに注意しよう。
例えば 0H1B は残り可能性 1440 通りだが、これは 5040 ある母集団のうち、その 1440 通りの数値をBが選んでおけば、答えは 0H1B だったということになる。つまりその確率は 1440/5040 = 29%、およそ3割という事だ。
続いて残り可能性の多い 0H2B、1H1B までを合計すると、実に 3420 通り、確率は 68% にも及ぶ。
0H1B とか 0H2B、1H1B って答え多いよなあと感じられていた人も多いと思われるが、それもそのはず。相手が単純なコンピュータだとしても、3回に2回はそのどれかが返ってくるのだから。さらに人間相手となれば、先ほどのウェイト、要するに「当てられまい」として数字を選ぶ行為により、さらにその確率は高まるはずである。

(3)最も可能性が高いのは「最悪の場合」

さて上の表より、1手目の答えとして最も嬉しくないのは「0H1B」である。
残り可能性が 1440 通りと一番多いという事は、これから絞り込んでいくのがまだまだ大変であるという事を示すと同時に、その答えが返ってくる確率が最も高いということも示唆している。
つまり、「1手目の答え 0H1B」を攻略することが、Hit&Blow 必勝のために絶対に避けては通れないということがわかるだろう。

この場合に限らず、全ての手において「最も嬉しくない答えの返ってくる確率が一番高い」ことは容易に想像できると思う。これは Hit&Blow というゲームの最大の特徴と言えよう。

「でも 0H1B じゃあ、秘密数なんてまだなんともわかるはずないから、2手目にどれを聞いても一緒じゃあないの? むしろ 5678 ならもっとも多くの数字をカバーできるから、この場合の最適な予想数のような感じがするなあ」
という声が聞こえてきそうである。ではその命題を検証してみよう。

(4)2手目は 5678 がいい?

1手目の予想数 1234 の答えが 0H1B であった場合、残る可能性は 0156, 0157, ……, 9873 の 1440 通りだ。
そこに2手目の予想数 5678 をぶつけると、返ってくる答えとそれぞれの残り可能性は次の通りである。

答え残り可能性
0H2B504 通り0156, 0157, ……
1H1B288 通り0175, 0176, ……
0H1B216 通り0159, 0169, ……
0H3B132 通り2567, 2586, ……
1H2B108 通り2568, 2576, ……
1H0B72 通り0179, 0198, ……
2H0B72 通り0178, 0278, ……
2H1B36 通り2578, 2658, ……
3H0B12 通り2678, 3678, ……

最も嬉しくない答え(そして最も起こる確率が高い)は 0H2B で、その場合の残り可能性は実に 504 通りもある。これでは2手目の予想数を出す前の 1440 通りのおよそ3分の1にしか絞り込めていない。

ところで、試しに他の予想数、例えば 0156 だとどうなるだろう。このときの返ってくる答えとそれぞれの残り可能性も同じように見てみる。

答え残り可能性
0H1B378 通り2078, 2079, ……
0H2B369 通り2057, 2058, ……
1H1B222 通り0267, 0268, ……
1H0B126 通り0278, 0279, ……
0H3B91 通り2015, 2061, ……
1H2B83 通り0517, 0518, ……
2H0B57 通り0178, 0179, ……
0H0B54 通り2789, 2790, ……
2H1B31 通り0167, 0168, ……
3H0B11 通り0157, 0158, ……
0H4B6 通り5061, 5601, 5610, 6015, 6501, 6510
1H3B6 通り0561, 0615, 5160, 6105, 6051, 5016
2H2B5 通り0165, 0561, 0651, 5106, 6105
4H0B1 通り0156

なんと!
最も嬉しくない答えでも、残り可能性は 378 まで減らせるのだ。これだけ違えば、あとの展開もかなり変わってくることだろう。
さらに残り可能性の期待値(平均値)もそれぞれ計算してみると、

5678 のときの残り可能性期待値 = 294.8

0156 のときの残り可能性期待値 = 254.7

のようになり、0156 のほうが大きく勝っている。
さて、これを聞き知っても、まだ2手目の予想数に 5678 を上げる気になれるだろうか?

この「最も嬉しくない答えのときの残り可能性」を最も少なくできる手が、2手目の最有力候補として考えられるが(ただしあくまで「候補」であり、本当に最適解であるかどうかはまだ議論の余地有り)、実はそれこそが 0156 とその「同類項」であることがわかっている。「同類項」は 0156 も含めて 1440 通りあることも計算済みだ。
ん? 1440 通り? どこかで見た数だと思ったら、「予想数 1234 への答えが 0H1B だったときに、可能性の残っている 1440 通りの数」、つまり「1234 のどれか一つの数字を取って別の桁に移動、残り3桁を 567890 から選んだ数」達と集合としてそっくり一致しているのだ。

(5)1手目の答えが 0H1B 以外の時

可能性の残っている数から選んだ予想数は、当然 4H0B の返ってくる目も残っているので、比較的悪い手にはならないという傾向はあるが、「最も嬉しくない答えのときの残り可能性」を最小にするとは限らない。現に、1手目の答えが 1H1B の場合などはそうでない例に属する。

また「最も嬉しくない答えのときの残り可能性」を最小にするからといって、期待値も最小になるかというと、こちらも偽だ。例えば、1手目の答え 0H1B のときですら、0156 に対する残り可能性の期待値は 254.7 だったが、0325 に対するそれは 254.4 とわずかながら上回っているのだ(ただし「最悪の時の残り可能性」は 408 通りと、0156 よりもかなり大きくなってしまう)。

ともあれ、今回の結論として 0156 とその同類項は、1234-0H1B に応える2手目の予想数として「現段階では最も良い手」と言えることは間違いあるまい。
また逆に、自分の秘密数を決める際、相手が「1234」「5678」と一つ覚えに聞いてくる場合などは、それぞれ「0H1B」「0H2B」という答えが返るように自分の数を決めれば、当てられにくいということになる。

1手目の答えが 0H1B でなかった場合や、3手目以降については記事を改めてまた研究していこうと思う。