0
t(s+1) = (d*(t(s) -T[s+1]h) + T[s+m+1])mod q
d
是字母表
T[1...n]
的尺寸要搜索
P[1...m]
是圖案(m是圖案的尺寸)
q
文本是一個素數
rabin karp算法中「h」代表什麼?
h = d^m-1 (mod q)
是值數字「1」在m位文本窗口的高位位置。
這條線是什麼意思? h
代表什麼?
t(s+1) = (d*(t(s) -T[s+1]h) + T[s+m+1])mod q
d
是字母表
T[1...n]
的尺寸要搜索
P[1...m]
是圖案(m是圖案的尺寸)
q
文本是一個素數
rabin karp算法中「h」代表什麼?
h = d^m-1 (mod q)
是值數字「1」在m位文本窗口的高位位置。
這條線是什麼意思? h
代表什麼?
您應該首先看一個更簡單的情況,其中d
是10
,文本只包含0
和9
之間的數字。
h
是你使用的值左移的高位數字。例如,我們假設m
是3
和T = 2345
。
345 = 10*(234 - 2*100) + 5
您可以在此情況下h = 100
看到的是用於從234
減去之前移動由2位數字2
:從234
,您可以按以下方法計算345
。請注意,h
的值爲h = 103-1
現在,您可以概括任何d
的想法,並獲得h = dm-1
。
然後,通過模操作,每次計算任何值時只需添加mod q
。