720通りがなぜ6回で当たる?ヒット&ブローの定石

ヒット&ブローの答えは3桁なら720通りあります。それなのにうまく絞り込めばどの答えでも6回以内に当てられます。1回のコールで何が分かるのかを数えながらよいコールの選び方と2つの定石を紹介します。

文:なおすけ / 公開 / 更新

ヒット&ブローのルール

ヒット&ブローは相手が隠した数字を当てる推理ゲームです。テレビ番組の「ヌメロン」でも知られ、このサイトのヒット&ブローでも遊べます。

  • 0〜9の違う数字を3つ並べた数字を相手に見えないように決める(012のように0で始まってもよい)
  • 相手の数字だと思う3桁を交互に言う(コール)
  • 数字も位置も合っているものは「ヒット」、数字は入っているが位置が違うものは「ブロー」としてその数だけ返ってくる
  • 先に3つともヒットさせたほうの勝ち

たとえば答えが157で170とコールしたら1は位置まで合っているのでヒット、7は入っているが位置が違うのでブロー。返事は「1ヒット1ブロー」(1H 1B)です。どの数字がヒットだったかは教えてもらえません。

答えの候補は1桁目が10通り・2桁目が残りの9通り・3桁目が残りの8通りで、10 × 9 × 8 = 720通りです。

最初の一手

何も分かっていない最初のコールはどの数字を選んでも同じです。数字の呼び方を入れ替えれば012も857も同じ形の問いになるからです。ここでは012とコールしたとします。

返ってくる判定ごとに答えがまだ何通り残るかを数えるとこうなります。

012への判定残る答え
0H 1B252通り
0H 0B210通り
1H 0B126通り
0H 2B63通り
1H 1B42通り
2H 0B21通り
1H 2B3通り
0H 3B2通り
3H 0B1通り

判定は全部で9通りです(2H 1Bはありえません。2つが位置まで合っていれば残りの1つも位置が決まってしまうからです)。

意外なのは0H 0Bです。1つも合わないとがっかりしますが、0と1と2がまるごと消えるので残りは210通り。 いちばん多く残るのは、1つだけブローが出た0H 1Bの252通りです。何も当たらないのは悪い知らせではありません。

よいコールとは

1回のコールで返ってくる判定は最大9通りです。理想を言えば、答えの候補を毎回9等分できれば720 → 80 → 9 → 1と3回で1つに決まり、4回目で当てられます。

実際には上の表のようにきれいには分かれません。そこでコールを選ぶときはどの判定が返ってきても残る候補がなるべく少なくなるものを選びます。 言いかえると、判定ごとに分かれた候補の山のうちいちばん大きい山が小さくなるコールです。運が悪くても大きく損をしない選び方で、ミニマックスと呼ばれます。

毎回この選び方でコールすると720通りのどの答えでも当てるまでの回数はこうなりました。

当てた回答えの数
1回目1通り
2回目4通り
3回目22通り
4回目99通り
5回目322通り
6回目272通り

平均5.16回でどの答えでも6回以内に当たります。720通りから始めても1回ごとに候補がおよそ3分の1以下に減っていくからです。

6回より縮めることはできません。全部の打ち方を調べると、どう打っても5回で必ず当てる方法はありませんでした。 最初の012に0H 1B・0H 0B・1H 0B・0H 2Bのどれかが返ってくると、残りの候補はどう打っても残り4回では見分けきれません。いちばん少ない0H 2Bの63通りでも無理でした。

2つの定石

定石1: ヒントと食い違わない数字をコールする

毎回の計算は人間には大変です。でもそれができなくてもかなり戦えます。これまでの判定と食い違わない数字(その数字が答えだとしたらこれまでの判定が全部そのとおりに返ってくる数字)から選ぶだけで、平均5.24回で当たりました。 ミニマックスの5.16回とほとんど変わりません。

逆にすでにありえないと分かっている数字をうっかりコールすると、その1回は当たる見込みがありません。 コールする前に「この数字が答えだったら、前の判定と合うか」を1つずつ確かめる。これがいちばん効く定石です。

定石2: 終盤はあえて「ありえない数字」をコールする

定石1と逆のようですが、候補が数個まで絞れた終盤では答えではありえない数字をわざとコールしたほうがよいことがあります。 答えが157のとき、ミニマックスで選んだ流れを見てください。

回コール判定残る答え
10120H 1B252通り
2103(ありえない数字)1H 0B72通り
31451H 1B9通り
41562H 0B3通り
5078(ありえない数字)0H 1B1通り
61573H 0B正解

2回目の103もありえない数字です。ミニマックスは候補の外からも選ぶので、序盤でもこうしたコールが混ざります。ただ序盤は候補が多いので、定石1のとおり候補の中から選んでも平均はほとんど変わりません。差が出るのは終盤です。

4回目のあと、答えは157・158・159の3通りに絞れていました。ここで3つのどれかをコールするとどうなるか。たとえば158とコールすると、答えが157でも159でも判定は同じ2H 0Bです。 当たれば5回目で終わりますが、外れると残り2つを見分けられず、6回目か7回目までかかります。

5回目の078は3通りのどれが答えでも違う判定が返るように選ばれています。157なら0H 1B・158なら1H 0B・159なら0H 0B です。 見分けているのは2桁目の7と3桁目の8だけで、0はどの候補にも入っていないので判定に影響しない埋め草です。 このようにないと分かっている数字で空いた桁を埋め、調べたい数字だけを置くと見分けるためのコールが作れます。 そのおかげで6回目で必ず当たります。

ただし平均で見ると、この場面ではどちらも同じです。候補からコールすると5・6・7回目がそれぞれ3分の1で平均6回、078なら必ず6回。 定石2が縮めるのは最悪の回数で、代わりに「5回目で当たる3分の1」を捨てています。 コールを「ヒントと食い違わない数字」だけに限って同じ考え方で選ぶと、平均はほぼ同じでも最悪の場合は8回まで延びました。当てにいくコールと、見分けるためのコールは別物です。

実際に遊んでみる

理屈の上では6回あれば必ず当たります。ただ人間どうしの対戦では相手も同じように絞り込んできます。 相手が先に当てそうなら、3分の1に賭けて候補をコールするほうがよいこともあります。 確実に進めるか、1回でも早く当てにいくか。相手の進み具合を見て選ぶところがヒット&ブローの読み合いです。

ヒット&ブローのルームを作る

まず名前を決めます。あなたがホストになります。

1 人で CPU と対戦する