p.437~438 카프-라빈 알고리즘에 대해서 질문드려요
2013-11-11
|
by mmuse1230
2176
검색도 해보고, 정오표도 확인해봤는데
이 부분에 대해서는 아무 정보도 찾을 수가 없어서 질문을 드립니다.
먼저 p.437의 KarpRabin.c 소스 14라인 루프 조건절에서요.
직접 코딩해보면 컴파일 에러가 납니다.
for(i=Start; i<=TextSize ? PatternSize; i++) 라고 되어 있는데요.
저런 연산자는 처음 보거든요. 삼항 연산자를 잘못 표시한 건가요?
아니면 -를 ?로 잘못 표시한 건가요?
두번째로 같은 소스(p.438)의 41라인에서요.
아무리 봐도 해시 함수가 책에서 설명된 것과 다른 것 같습니다.
HashValue = String[i] + (HashValue * 2); 로 되어 있는데요.
HashValue += (String[i] * pow( 2, Size - (1 + i)))가 되어야 하는 것 아닌가요?
책에 나온대로 코딩해도 결과가 제대로 나오지 않는데요.
제가 코딩을 잘못해서 그런 건지 모르겠네요.
제가 생각한대로 해서 코딩하니 책에 나온 것과 똑같이 결과가 나왔거든요.
이 점 답변 부탁드립니다^^