Я делаю простую программу на Java.При заданном наборе букв будут перечислены все слова (содержащие более 2 букв), которые соответствуют комбинациям букв.
Например:
Является ли данное слово верным.
Результат должен быть: приход . raw , daw , war , rad
У меня в базе данных sqlite огромный список английских слов в оригинальном видеи отсортировано по букве, это делает выбор быстрее.
Схема базы данных выглядит следующим образом:
словарь: {id, word, length}
anagram: {id, anagram, length}
anagram_dictionary: {id, word_id, anagram_id}
С тем же примером:
Когда вставлено слово raw
Он ищет arw , и результаты возвращают raw война
Моя проблема заключается в том, что каждый раз, когда я выполняю поиск, он вычисляет комбинаций букв, которые я дал.
Для примера это математика:
4! / (4! * 1!) + 4! / (3! * 1!) = 5
Моя проблема в том, чтозаданная длина букв равна 16. Поэтому я должен составить комбинации из 16 в 16 + комбинации из 16 в 15 + ... + комбинации из 16 в 1
Мне нужно улучшить метод, потому что он требует возраста, чтобыдать простой результат, но я не знаю, как?Поэтому я пытаюсь сохранить в базе данных, но не могу понять, как?
Заранее спасибо