我正在使用C进行客户端/服务器策划游戏,到目前为止我已经完成了。我的程序正在运行,它平均6-7次猜测解决了这个秘密。然后我看着互联网,发现Donals Knuths的方法:
我在这里要说的是我使用了5个位置和8种颜色。
当我试图优化我的程序时,我很难理解第3步,特别是计算什么猜测会消除最多的可能性,看起来像。
我所知道的是,我必须查看每个元素并将其与其他元素进行比较,但我不确定如何比较它,因为我没有任何白/黑值。而且我想知道如何判断满足某些条件的条目将消除最大可能性。
答案 0 :(得分:3)
我讨论了算法并在my blog给出了一个实现(在Scheme中,而不是C)。棘手的部分是minimax函数中的这个谓词:
(or (< size min-size)
(and (= size min-size)
(member (car ps) pool)
(not (member min-probe pool))))
你必须阅读整篇博文来弄清楚细节,但基本上这会实现Knuth的“受制于”要求:如果探测是一个新的最小值,或者它是否等于当前的最小值,则是池的成员,当前最小值不是池的成员,将其保持为新的最小值,否则循环到下一个探测器。