【发布时间】:2011-01-14 02:37:25
【问题描述】:
我正在用 Java 编写一个简单的程序。给定一组字母,它将列出与字母组合匹配的所有单词(超过 2 个字母)。
例如:
是给定的词是病房。
结果应该是:ward。 原始、daw、战争、rad
我在一个 sqlite 数据库中有一个巨大的原始形式的英文单词列表,并按字母排序,这使得选择更快。
数据库架构如下所示:
字典:{id, word, length}
字谜:{id,字谜,长度}
anagram_dictionary: {id, word_id, anagram_id}
同样的例子:
当插入单词 raw
它搜索arw,结果返回raw、war
我的问题在于,每次我进行搜索时,它都会计算我给出的字母的combinations。
例如,它使这个数学:
4!/(4!*1!) + 4!/(3!*1!) = 5
我的问题是给定的字母长度是 16。所以我必须在 16 中组合 16 + 在 15 中组合 16 + ... + 在 1 中组合 16
我需要改进方法,因为它需要很长时间才能给出一个简单的结果,但我现在不知道如何?所以我尝试存储在数据库中,但不知道如何?
提前致谢
【问题讨论】:
标签: java sql math combinations