Code Breaker

Code Breaker 的策略

简述

每条提示都会排除一些密码。每次尝试后,请记住仍然可能的密码,也就是对你之前所有尝试都会给出完全相同提示的那些密码。然后选择一个能最好地区分这些密码的尝试,并且尽量选择仍有可能是正确答案的密码。

用排除法推理

在“中级”关卡,开局共有 360 个可能的密码。只要一个密码对你的每次尝试都会给出与应用显示的完全相同的提示,它就仍然是可能的。在该关卡的示例对局中,每次尝试后分别剩下 24、5、1 和 1 个:最后一次尝试就是密码。

  • 2 个位置正确,1 个位置错误:仍剩 24 个可能的密码。
  • 1 个位置正确,2 个位置错误:仍剩 5 个可能的密码。
  • 3 个位置正确:仍剩 1 个可能的密码。
  • 4 个位置正确:仍剩 1 个可能的密码。

第一次尝试

好的第一次尝试能把密码分成许多小组,每种可能的回应对应一组。下表列出了几种第一次尝试,以及应用可能给出的回应数量和最坏情况下剩余的密码数量。

“中级”关卡,开局共有 360 个可能的密码。
第一次尝试可能的回应剩余密码(最坏情况)
1188
9102
2240
6144
3180

在“中级”关卡,密码中不会重复任何颜色,因此用 4 种不同颜色(红、黄、蓝、橙)的尝试在最坏情况下会剩下 88 个密码。重复某种颜色或留有空格的尝试,区分效果较差。

选择仍可能的密码

当剩下的密码不多时,尽量从中选一个来尝试:要么它就是正确答案,你直接获胜;要么得到的回应能排除其他密码。在示例对局中,第 3 次尝试之前还剩 5 个密码;“红、绿、蓝、橙”就是其中之一,这 5 个密码各自会给出不同的回应。得到回应后,只剩 1 个密码:下一次尝试就能获胜。

当密码可以重复颜色时

在“困难”和“极限”关卡,密码中的颜色可以重复出现。此时最佳的第一次尝试也会改变:

“困难”关卡,开局共有 14 070 个可能的密码。
第一次尝试可能的回应剩余密码(最坏情况)
193 080
202 544
103 924

在“困难”关卡,尝试“红、红、黄、黄、蓝”在最坏情况下剩下 2 544 个密码,而“红、黄、蓝、橙、紫”则剩下 3 080 个。还要记住,找到的颜色可能出现多次:某个棋子位置正确,并不意味着这种颜色已经用完。

不完整的行

应用允许提交不完整的一行,但最后一行除外。这样的一行不可能获胜,还会占用一行机会:一开始,它获得的信息比完整的一行少(红、黄、空格、空格只有 6 种可能的反馈,而红、黄、蓝、橙有 11 种)。当只剩一个具体问题需要判断时,它会有用,例如只需确定某一种颜色的位置。

在“最后一搏”模式中

已经玩过的几行可能就足以只留下一个代码。请逐行回顾,每次只保留与之相符的代码。在网站上的示例中,“中级”难度预先填好的 7 行只剩下唯一一个代码。