私は C でクライアント/サーバーの首謀者ゲームに取り組んでおり、これまでのところ終了しています。私のプログラムは機能しており、平均 6 ~ 7 回の推測で秘密を解きます。それから私はインターネットを調べていて、ドナルズ・クヌースのアプローチを見つけました:
- 残りの可能性のセット S を作成します (この時点で 1296 あります)。最初の推測は aabb です。
- 色付きのペグと白のペグが答えである場合に同じスコアを与えない S からすべての可能性を削除します。
- 可能な推測ごとに (必ずしも S である必要はありません)、可能な色付き/白のスコアごとに S から除外される可能性の数を計算します。推測のスコアは、そのような値の最小値です。最高得点 (ミニマックス) で推測をプレイします。
- 正しく理解できるまでステップ 2 に戻ります。
ここで私が言わなければならないのは、5 つの位置と 8 つの色を使用しているということです。
私は自分のプログラムを最適化しようとしているので、ステップ 3 がどのように見えるか、特にどのような推測が最も可能性を排除するかの計算がどのようになるかを理解するのに苦労しています。
私が知っていることは、すべての要素を調べて他の要素と比較する必要があるということですが、白/黒の値がないため、比較する方法がわかりません。そして、特定の条件を満たすエントリが最大の可能性を排除するものをどのように判断できるのだろうか.