본문 바로가기

cgiosy.dev

검색하기
cgiosy.dev
프로필사진 cgiosy

  • 분류 전체보기 (16)
Guestbook
Notice
Recent Posts
Recent Comments
Link
«   2022/07   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
  • lis
  • DP
  • 알고리즘
more
Archives
Today
Total
관리 메뉴
  • 글쓰기
  • 방명록
  • RSS
  • 관리

목록2022/07/14 (1)

cgiosy.dev

다항식 기반 롤링 해시, 직접 만들어 써보기

어떤 집합에서 결합법칙을 만족하는 이항연산 +++와 역연산 −-−가 있고, f(x+y)=f(x)+f(y)f(x + y) = f(x) + f(y)f(x+y)=f(x)+f(y)를 만족하는 함수 fff가 있을 때, fn(x)f^n(x)fn(x)를 빠르게 계산할 수 있다면 길이 NNN의 문자열 SSS에 대해 h=∑k=1NfN−k(S[k])h = \sum_{k=1}^{N}{f^{N-k}(S[k])}h=∑k=1N​fN−k(S[k])를 롤링 해시로 활용할 수 있다. f(h)+S[N+1]f(h) + S[N + 1]f(h)+S[N+1]로 뒤에 문자를 추가할 수 있고, h−fN−1(S[1])h - f^{N-1}(S[1])h−fN−1(S[1])로 앞에서 문자를 삭제할 수 있다. 당연히 중간에서 삭제 및 대체도 가능하지만, 앞뒤 추가 및 삭제에 비해 거의 안 쓰이는 편이다. 예시 위키피디아의 롤링 해시 문서에선 다음 두 가지 다항식 기반 롤링 해시를 소개한다. 다항식 롤링 해시 적당한 상수 ppp, qqq가 있을 때, mo..

카테고리 없음 2022. 7. 14. 07:58
Prev 1 Next

Blog is powered by kakao / Designed by Tistory

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.