在论文中,Knuth 描述了如何选择该策略:
表 1 是通过在每个阶段选择一个测试模式来找到的,该模式在编码制作者的所有可能响应中最小化剩余可能性的最大数量。如果这个最小值可以通过“有效”模式(一种使“四个黑色命中”成为可能的模式)实现,则应使用有效模式。在此条件下,选择了按数字顺序排列的第一个这样的测试模式。幸运的是,这个程序可以保证在五步中获胜。
所以它在某种程度上是一个贪婪的策略(试图在每一步而不是整体上取得最大的进步),而且还有一个临时的平局策略。这意味着它不需要在期望值上是最优的,而且 Knuth 确实是这样说的:
从“预期移动次数”的角度来看,表 1 中的策略并不是最优的,但可能非常接近。可以改进的一条线 [...]
因此,在论文发表时,Knuth 已经意识到它不是最优的,甚至有一个明确的例子。
当这篇论文在他的娱乐和游戏精选论文集(2010) 中重新发表时,他在 6 页的论文中添加了一个 5 页的附录。在本附录中,他首先在第一段中提到了随机化,并讨论了最小化预期移动次数的问题。他将其分析为对所有 1296 个可能的代码字进行的所有移动的总和,他提到了几篇论文:
他的原始算法给出了 5801(平均 5801/1296 ≈ 4.47608),小幅改进给出了 5800(≈ 4.4753)。
Robert W. Irving,“Towards an optimization Mastermind strategy”,Journal of Recreational Mathematics 11 (1978), 81-87 [在“最多 5 个”范围内达到 5664 ⇒ ≈4.37]
E. Neuwirth,“Mastermind 的一些策略”,Zeitschrift fur Operations Research 26 (1982),B257-B278 [达到 5658 ⇒ ≈4.3657]
Kenji Koyama 和 Tony W. Lai,“最佳策划策略”,休闲数学杂志 25 (1993), 251-256 [达到 5626 ⇒ ≈ 4.34104938]
最后一个是最好的,因为它是通过详尽的深度优先搜索找到的。(请注意,如果您允许他们有时走 6 步,所有这些论文在预期的移动次数上都可以做得稍微好一点……我给出了“最多 5 步”约束的数字,因为这就是这里的问题所要求的.)
您可以通过假设代码制作者是对抗性的并且不会在 1296 个可能的代码字中随机均匀地选择,而是根据任何分布将使其对代码破解者来说最困难,从而使其更普遍(更难)。最后,他提到了 Tom Nestor 所做的很多工作,这些工作最终解决了许多此类问题。
尝试跟进或重现这些结果可能会很有趣(例如,编写详尽的搜索程序)。享受!