Algorithm 如何找到所有可能的单词?

Algorithm 如何找到所有可能的单词?,algorithm,graph-algorithm,Algorithm,Graph Algorithm,在iPhone上的一个单词拼凑游戏中,游戏会告诉你在每个游戏结束时可能会拼出多少单词 我想创建我自己的单词拼图游戏,也有这个功能,但我不知道他们是如何计算的 他们不可能通过游戏中的每一个组合来确定它是否是一个单词,对吗?这是一个5x5的随机字母板。单词最多可以是11个字母 帮帮我,我被踩了 游戏看起来有点像这样: 你用手指在限定的时间内用字母造字。免责声明:我只看过这样的游戏,没有实现类似的功能 您可以使用一些回溯算法来实现这一点,该算法生成单词并在字典中搜索它们。但是,对于5x5板,这将非常

在iPhone上的一个单词拼凑游戏中,游戏会告诉你在每个游戏结束时可能会拼出多少单词

我想创建我自己的单词拼图游戏,也有这个功能,但我不知道他们是如何计算的

他们不可能通过游戏中的每一个组合来确定它是否是一个单词,对吗?这是一个5x5的随机字母板。单词最多可以是11个字母

帮帮我,我被踩了

游戏看起来有点像这样:

你用手指在限定的时间内用字母造字。

免责声明:我只看过这样的游戏,没有实现类似的功能

您可以使用一些回溯算法来实现这一点,该算法生成单词并在字典中搜索它们。但是,对于5x5板,这将非常缓慢。所以你可以做的是搜索你可以进一步生成的单词数量,如果你已经生成了一些单词。例如,如果您已生成
the
,则必须从
the..
开始搜索字数;如果金额太低(比如“yoe”),那么您可以停止进一步搜索。通过这种方式,您可以修剪搜索树并实现您的目标。如果您的字典已排序,那么您可以通过使用简单的上限和下限(二进制搜索修改)实现O(log(单词的数量))的复杂性


在生成棋盘和答案时,另一件有助于提高游戏与用户的互动性的事情是给他/她一些时间查看他/她的分数、其他人的分数等,然后在这段时间后开始一个新游戏(可能10秒左右就足够了)。通过这种方式,您可以在下一块电路板上预计算几乎所有可能的单词。

另一种解决方案是对所有有效单词使用a。您可以利用它的结构有效地修剪搜索空间


对于单词最多为11个字母的5x5电路板,可能组合数的粗略上限为100000000个单词。其中大部分都不是有效的单词(如图像最后一行中的TNPU)。因此,通过在搜索过程中进行适当的删减,并为词典提供快速的数据结构,您应该能够在现代智能手机上快速完成此操作。

您能告诉我们您尝试了什么吗?我猜他们会对照已知词进行检查。不需要检查所有的排列。把它想象成一个文字游戏经常使用的单词。