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
是素数
h = d^m-1 (mod q)
是m位文本窗口的高位数字“1”的值。
这条线是什么意思? h
代表什么?
答案 0 :(得分:0)
您应首先查看d
为10
的简单案例,且文字仅包含0
和9
之间的数字。
h
是您用于左移高位数的值。例如,我们假设m
是3
和T = 2345
。从234
开始,您可以按如下方式计算345
:
345 = 10*(234 - 2*100) + 5
在这种情况下,您可以看到h = 100
用于将2
转换为2位数,然后再从234
中减去它。请注意,h
的值为h = 103-1
现在,您可以概括任何d
的想法,并获取h = dm-1
。
然后,通过模数运算,您每次计算任何值时都只需添加mod q
。