【问题标题】:What does "h" represent in rabin karp algorithm?rabin karp算法中的“h”代表什么?
【发布时间】:2016-04-29 10:05:55
【问题描述】:
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 代表什么?

【问题讨论】:

    标签: algorithm rabin-karp


    【解决方案1】:

    您应该首先查看一个更简单的情况,其中d10,并且文本仅包含09 之间的数字。

    h 是您用于左移高位数字的值。例如,假设m3T = 2345。从234,可以计算出345如下:

    345 = 10*(234 - 2*100) + 5
    

    您可以看到,在这种情况下,h = 100 用于将 2 移动 2 位,然后再从 234 中减去它。注意h的值为h = 10<sup>3-1</sup>

    现在,您可以将这个想法推广到任何d,并得到h = d<sup>m-1</sup>

    然后,通过进行模运算,您只需在每次计算任何值时添加mod q

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 2022-01-10
      • 1970-01-01
      • 2018-04-09
      • 2021-05-26
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      相关资源
      最近更新 更多