algorithm - 使用给定的 n 个字符串输入生成 Bulls 和 Cows 密码

标签 algorithm logic

我在这个问题上停留了很长一段时间,它基本上是逆向工程公牛和奶牛游戏。 在这里阅读更多:http://rosettacode.org/wiki/Bulls_and_cows 我无法为下面给出的问题制定逻辑,如果您能想到解决方法,请发表评论。

问题陈述:

给定几个线索词(形式为 ABCD/DBCA 等)和每个词的奶牛和公牛的数量,程序 应该能够通过评估给定的线索词并生成输出 secret 词来计算出实际的词。

测试用例:

输入: 4
DBCC 0 2
CDAB 2 1
计算机辅助设计学院 1 2
CDDA 2 0

输出: BDAA

最佳答案

想法是减少可能解决方案的空间。在开始之前,所有 4^4 组合都是可能的。阅读第一条线索 [DBCC 0 2 ] 后,您可以排除许多可能的解决方案,在这个特定示例中,您可以排除所有首先具有 D 的状态,所有具有第二个 B 的状态等等在。只需排除所有不“符合”当前线索的可能解决方案即可。

对每条线索都这样做,直到只剩下一个解决方案。另一个有趣的问题当然是如何生成好的线索模式。

关于algorithm - 使用给定的 n 个字符串输入生成 Bulls 和 Cows 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11594472/

相关文章:

php - MYSQL Left-Join 表选择数据问题-逻辑错误

ios - Swift 根据不同的值连接字符串

java - 数独生成器算法优化 欢迎

algorithm - 使用贪婪算法确定是否可以最优地给出解决方案

algorithm - 合并没有比较键的排序列表

java - 国际象棋游戏中的棋子移动 - Java

c++ - 尝试开发一个程序来识别最小和最大的数字

c++ - B 树中的指针

matlab - 如何将 && 操作数求解为逻辑标量

c++ - std::vector 每次使用时都填充相同的数据