Найти ближайший набор из списка целых чисел, хранящихся в базе данных - PullRequest
0 голосов
/ 21 февраля 2012

Я хотел бы найти ближайший или тот же набор целых чисел, который хранится в таблице базы данных.Длина хранимого списка варьируется от 0..10, важен порядок элементов.

Например:

1:[1234, 2345, 5463, 1235]
2:[2355, 5463, 1235]
3:[123, 1234, 1235, 5463, 3443]

Если у меня есть новый набор, например: [1235, 5463], я бы хотелнайти ближайший или соответствующий набор.В этом случае 3:[123, 1234, 1235, 5463, 3443].

Поскольку наборы хранятся в базе данных, я рассматривал вопрос о преобразовании списков в хэшированное значение, а затем сортировать его в соответствии с вычисленным хешем из данного набора.

Это не должно быть совершенным, если я могу найти наиболее подходящий результат в первых записях, я в порядке.

Каков наилучший метод хеширования для достижения этой цели?

Или есть другие подходящие решения.

1 Ответ

0 голосов
/ 22 февраля 2012

Если предположить, что в ближайшем из вас действительно имеется в виду «самая длинная общая подстрока» (LCS), то хеширование вам не поможет - вам действительно нужно вычислить LCS вашего запроса с каждым из элементов вашей базы данных (или, по крайней мере, с верхней частью).немногие, как вы упомянули).

Лучший способ сделать это - динамическое программирование.См. Википедия для получения полной информации об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...