1) 왜이 라인에 1을 더합니까?Levenshtein 거리에 관한 질문
d[i-1, j] + 1, // deletion
d[i, j-1] + 1, // insertion
if s[i] = t[j] then cost := 0
else cost := 1
가 낮은 단어 길이/삭제 고려해야한다, 또는 내가 뭔가를 놓친 거지 라인?
2) 주석은 상태 삭제 및 삽입을 나타냅니다. 더 낮은 값은 삭제 된 문자를 나타 내기 때문에 두 단어 (삭제 된 문자가 단어의 길이를 나타내는 정수)에서 삭제 된 문자를 확인한다고 생각합니다.
사용되는 코드는 여기(이것은 의사 코드 내가 더 언어 별 문제가 없기 때문에,이 스레드는 모든 언어 범주가 아닌) :
http://www.iterasi.net/openviewer.aspx?sqrlitid=z0cloj7xhk-ce0f72v4cjq
그래, 실제로 그 링크를 읽었습니다. 좋은 대답. 마지막으로 한 가지 : 최소 기능은 셀에 +1이 있고 셀에 + 비용이 있습니다. 확실히 1과 비용은 비용이 1보다 크지 않고 동일한 값 (1)이며 if 문이 실행될 때 0이 아닌 경우 (비용 == 0 등). 나는이 논리를 이해하지 못합니까? – dotnetdev
아니요. 비용은 항상 1이 아닙니다. 인접한 문자가 일치하지 않는 경우 1보다 훨씬 클 수 있습니다. 처음 시작할 때 n 문자 단어의 마지막 문자는 n 삽입 결과라고 가정합니다. 비용은 처음에는 n이 비교가 될 때까지 적습니다. 왜냐하면 일부 문자가 실제로 일치하기 때문입니다. –