2012-02-21 2 views
0

데이터베이스 테이블에 저장된 정수 중 가장 가까운 정수 또는 정수를 찾고 싶습니다. 저장된 목록 길이가 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].

집합이 데이터베이스에 저장되었으므로 목록을 해시 된 값으로 변환 한 다음 주어진 집합에서 계산 된 해시에 따라 정렬 할 것을 고려하고있었습니다.

퍼펙트 일 필요는 없습니다. 첫 번째 레코드에서 가장 적합한 결과를 찾을 수 있다면 괜찮습니다.

가장 좋은 해싱 방법은 무엇입니까?

다른 적합한 솔루션이 있습니까?

+0

"가장 가까운"을 어떻게 정의합니까? –

+0

가장 가까운 순서는 같은 요소가 가장 많이 포함 된 집합입니다. – Drejc

+0

요소가 연속적이어야합니까 (즉 가장 가까운 = 가장 긴 공통 부분 문자열)? –

답변

0

가장 가까운 공통 부분 문자열 (LCS)을 가장 가까운 것으로 가정하면 해시가 도움이되지 않습니다. 데이터베이스의 각 요소 (또는 적어도 하나 이상의 요소)로 쿼리의 LCS를 계산해야합니다. 위에 언급 한 몇 안되는 것들).

이렇게하는 가장 좋은 방법은 동적 프로그래밍입니다. 자세한 내용은 wikipedia을 참조하십시오.

관련 문제