Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 改进的Hangman对策,优化算法_Algorithm - Fatal编程技术网

Algorithm 改进的Hangman对策,优化算法

Algorithm 改进的Hangman对策,优化算法,algorithm,Algorithm,计算机现在随机选择这些单词中的一个,程序应该尽可能少地猜测单词 在提示之后,计算机会给出以下提示 开始于 以 包含 不包括 让我们以house这个词为例:如果我们猜到“h”,那么我们得到的答案是搜索的单词以“h”开头。如果我们猜测“ous”,我们得到的答案是搜索的单词包含“ous”usw。如果我们猜“房子”,那么我们得到的答案是我们找到了正确的单词 对于这个问题是否有一个最佳策略?幼稚的做法是尝试每一个词。当然,那很糟糕。我认为这是一个更好的方法。作为第一个技巧,选择最常见的字母等。但我认为你可

计算机现在随机选择这些单词中的一个,程序应该尽可能少地猜测单词

在提示之后,计算机会给出以下提示

  • 开始于
  • 包含
  • 不包括
  • 让我们以house这个词为例:如果我们猜到“h”,那么我们得到的答案是搜索的单词以“h”开头。如果我们猜测“ous”,我们得到的答案是搜索的单词包含“ous”usw。如果我们猜“房子”,那么我们得到的答案是我们找到了正确的单词


    对于这个问题是否有一个最佳策略?幼稚的做法是尝试每一个词。当然,那很糟糕。我认为这是一个更好的方法。作为第一个技巧,选择最常见的字母等。但我认为你可以更有效地做到这一点

    是的,有一个最佳策略。但是,该策略取决于对给定单词列表求解博弈树。词表是有限的;在每个节点上都有一组有限的选择;可以对每个猜测进行配置,以确保结果添加大量信息,从而使您更接近解决方案。因此,博弈树是有限的

    为给定词典(单词列表)构建游戏树。如果你想要保证最优攻击,你需要求解博弈树,包括极小极大修剪。如果你想在更短的时间内找到一个非常好的攻击,那么从决策树的ML(机器学习)区域中抽取


    这足以让你找到解决方案吗?

    我们怎么知道我们什么时候赢了?@juvian我们从电脑上收到一条信息,它说我们猜对了单词。如果一个字母满足前三个条件呢?像猴面包树?我开始读这个问题,我觉得我错过了几个句子:“计算机现在随机选择”-“现在”意味着已经发生了其他事情-在那之前发生了什么事情吗?“其中一个词”-哪个词?也许是有人在做同样的挑战?是的,我想是的。现在我有一些事情可以研究。但是,是否有一个解决方案需要渐近小于log(n)的尝试(如果n是可能的单词的数量)?@ ueAuy考虑你做一个查询,你的答案将提供你可以丢弃一些条目的信息。您需要在每个查询中丢弃至少一半,才能生成日志(n)解决方案,但您认为这是不可能的。请注意,您可以制定一个简单的策略,在最多26+k*(l-2)个查询中解决任何单词,其中k是不同字符的数量,l是单词的长度。@ueial:不,您不能比O(log(n))做得更好。事实上,一个精心构建的单词列表会给你留下O(n)。一个为您构建的最佳单词列表将是O(log8(n)),因为您可以从每个猜测中提取8个分类(3个二进制决策)。