1手読みマスターマインド

ヒット・アンド・ブローとも呼ばれる。
ここでは、ピンが8種4本の場合について扱う。
出題パターンは8の4乗で4096通り、白黒のピンの情報は14通り(黒黒黒白はありえない)。
解答側としては、できるだけ多くの情報を引き出すため、うまく14通りをばらけさせたい。
本当は何手も先まで読んでみたいが、4096通りというのは対称性を考えても多いので、
目先の1手だけを読む形でプログラムを組んだ。
予想手に対して最悪の出題だったときの絞り込まれ方が最良のものを選ぶ。
ミニマックス風だ(実用的ではないが、ベータカットのようなこともできる)。
1手しか読んでいないため、本当に「最悪」を選べてはおらず、以下の結果は完全でない。
0〜7の数字4個を予想する。まずは当然の"0123"という予想手。
このとき、白いピンが1本立つという場合が最も多く、4096通り中976通りある。
次に(白1本だったとして)、"4455"と予想する。これも自然だ。
やはり白が1本になる確率が高く、976通り中196通り(ここは黒1本も196通りとなる)。
そしたら"5646"とする。既出と未出をうまく混ぜている。まだ7は使っていない。
また白1本。確かに白1本は嫌だよなあ。しかし32通りまで絞り込んだ。
"1257"。そろそろ理解できなくなってくる。白1本で5通りへ。
そして最後の予想は"7374"。
これ自体は正解でないとわかっているのだが、これで完全に答えがわかる。
黒2本なら、答えは"7004"だ。下が出力。6回目で当てた。

256 976 500 936 660 216 224 204 72 28 9 8 6 1 (4096)
0 1 2 3 / 1
152 196 196 84 180 96 12 24 24 12 0 0 0 0 (976)
4 4 5 5 / 1
0 32 32 32 32 32 6 12 12 6 0 0 0 0 (196)
5 6 4 6 / 1
1 5 4 5 5 3 2 5 2 0 0 0 0 0 (32)
1 2 7 5 / 1
0 0 0 0 0 1 0 1 1 1 0 0 1 0 (5)
7 3 7 4 / 5
0 0 0 0 0 0 0 0 0 0 0 0 0 1 (1)
7 0 0 4 / 13
6

1手読みとはいえ、さすがコンピュータ。何も考えてない人間よりはすごい。
普通の人間がやると、白1本なんて情報はうまく生かせない。
わずか4096通りとはいえ、人間が切り込むことは難しい領域だ。