猜密码(Mastermind)推理策略:信息论解法
猜密码是最纯粹的推理游戏:没有操作,没有运气补偿,每一步都是信息处理能力的比拼。多数人凭感觉猜,五轮后还在乱试;而会"算信息量"的玩家,几乎每局都能在五次以内锁定答案。这篇文章把职业玩家的推理框架拆成可上手的四步。
玩法规则
出题方设定一段由若干颜色(或数字)组成的密码,位置固定,可能包含重复。猜方每轮提交一组猜测,系统返回两类反馈:黑钉表示"颜色对且位置也对"的数量,白钉表示"颜色对但位置不对"的数量。在限定轮数(通常 10 轮)内猜出完整密码即获胜,每轮反馈都是缩小解空间的关键线索。
高分技巧
- 首猜信息最大化:第一猜的目标不是猜中,而是获取最多信息。用包含重复对(如 AABC 型)的组合作首猜,能同时检验重复规律与颜色分布,比随机四色区分度更高。
- 先定集合,再排位置:把问题拆成两半——前几轮专注确定"密码里有哪些颜色、各几个",集合确定后再做位置排列。两步走比一步到位的枚举效率高得多。
- 移位法确认位置:已知颜色集合后,构造"相邻两位互换"的试探序列。每移一位,黑钉数的变化直接告诉你该颜色属于哪一段,两三轮即可定位全部位置。
- 候选剪枝不回头:每次提交前,把新猜测与历史所有反馈做一致性检验——若某个候选组合与任何一条旧反馈矛盾,直接排除。始终保持猜测落在"活候选"集合内。
- 记账法防遗漏:用纸或脑内表格记录每个颜色的三种状态:确认在、确认不在、待定。待定颜色才是下一猜的主角,已排除的颜色绝不再出现在试探组合里。
- 善用白钉的反证:白钉为 0 是强信息——说明试探的颜色全部不在密码中或全在原位。看到全零反馈要立刻大幅收缩假设,而不是继续平滑推进。
常见错误
- 瞎猜不记录:凭直觉连续出猜,不复盘历史反馈,同一批颜色被反复检验,浪费宝贵的轮数。
- 过早追求猜中:第二三轮就急着凑"可能的答案",而不是设计区分度最大的试探。猜中是副产品,压缩解空间才是主线。
- 忽略重复可能:默认四个颜色互不相同,迟迟不测重复组合,遇到 AABB 型密码当场卡死。
进阶心法
信息论视角下,每一轮猜测的本质是"用一个问题把候选空间切成两半"。提问前先自问:这个猜测在最好和最坏的反馈下,分别能剩下多少候选?选择最坏情况下剩余最少的那个,就是极小极大策略——计算机正是用这一思路证明了标准局五步必胜。人类不必背完整决策树,但可以培养"对半收缩"的直觉:每轮提交后,能用一句话说出"这条反馈排除了什么",说明你在推理;说不出,说明你在碰运气。保持这个习惯,平均轮数会稳定下降两轮以上。