【发布时间】:2013-09-09 13:52:27
【问题描述】:
我正在尝试在拼字游戏中为对手制定逻辑。
我做了很多思考,得出的结论是我需要使用anagrams 并根据字典文件中的单词列表检查这些字谜,看看生成的单词是否实际上是包含在字典文件。
我遇到的问题是optimization。由于此字谜使用recursion 并运行多达 8 个阶乘,因此往往会生成许多在任何字典中都不存在的“垃圾”词,例如单个字母的重复。
必须进行某种检查以查看排列是否有效,而不仅仅是重复 1 个字符。到目前为止,我不知道如何快速和准确做到这一点。
在英语中,单词似乎由元音和辅音组成。我正在考虑检查一个单词是否包含至少 1 个元音和至少 1 个辅音,但是有一些例外情况,单词只能包含元音或辅音。所以这个方法似乎已经走到了尽头。
现在我可能遗漏了一些重要的东西,但是我没有通过所有排列强制我的方式,我不知道如何以足够快的方式进行检查以进行游戏。
我的问题是:
谁能推荐一种可以 100% 工作的方法来优化生成的排列数量?
我不需要生成无用的,而这些最终是生成的大部分。
我相信这是一个很好的方法,但同时我相信我一定错过了一些更快、更适合我想要实现的东西。
如果有人可以建议一种方法来检查单词是否真的可行,或者如果您可以建议一种更好的方法来处理这种情况,我们将不胜感激。
谢谢。
【问题讨论】:
-
谷歌搜索“计算机拼字游戏”发现了这个scotthyoung.com/blog/2013/02/21/wordsmith
标签: java algorithm permutation pseudocode anagram