문제는 설명하기 쉽습니다. 우리는 두 개의 큰 배열 (32 비트 정수 값)을 가지며 지정된 수의 연속 위치 (n) 위에 모든 공통 시퀀스를 찾아야합니다. N = 3 배열과 비교하는 경우, 예를 들어두 개의 큰 배열에서 가장 긴 문자열 일치를 얻기 위해 사용할 알고리즘은 무엇입니까?
같습니다
a = [1, 3, 5, 7, 3, 2, 7, 4, 6, 7, 2, 1, 0, 4, 6]
b = [2, 5, 7, 3, 2, 3, 4, 5, 6, 3, 2, 7, 4, 6, 0]
가 algoritmh 반환한다 두 배열 :
r0 = [5, 7, 3, 2]
r1 = [3, 2, 7, 4, 6]
(이상, 제 배열의 상대적인 위치 및 연속 한 바이트 수가 일치한다).
나는 시작하는 것이 좋은 점은 Longest Common Substring Algorithm이라고 생각하지만, 아마도 누구나 내 문제에 더 잘 맞는 알고리즘을 알고있을 것입니다. 내가 제대로 이해하고 N, 다음 I'de가 보이어 - 무어의 검색 알고리즘의 변형을 사용하여 시퀀스의 최소 크기 인 경우
나는 이것에 속한다 [Math.stackexchange] (http://math.stackexchange.com/) – genesis
이것은 매칭/정렬 DNA 서열의 맥락에서 종종 연구되는 공개 연구 문제이다. 사람들이 DNA로 이것을하는 방법을 연구하거나 사용 가능한 라이브러리를 찾는 것이 더 나을지도 모른다. –
@ 마크 : 이것은 어떻게 공개 된 연구 문제입니까? –