rabin-karp

    1热度

    1回答

    什么是可用于实现Rabin-Karp string search algorithm一些好的哈希函数好的哈希函数?我只知道多项式哈希的,但它有一些缺陷 - 最明显的是,如果散列做模2 ,有哪些是保证经常产生碰撞测试(使用另一模量是不切实际的,因为mod操作非常贵)。那么,有没有一个快速,易于编写的好的散列函数? P.S.我知道buzhash,但我想知道是否有其他的替代方案...

    1热度

    1回答

    我无法理解滚动哈希算法如何通过除以质数将哈希降至模数值后的工作方式。 考虑编号为123456的5位数字的顺序。第一块是12345。我存储的值,在下一个窗口中,6进来,1出去。 所以新的散列将是(12345-1*10^4)*10 + 6 = 23456。这很直观。 很明显,这些数字很大,所以我们需要一个模数函数来保持它们的小。假设我为此目的采取101作为素数。 因此12345将减少到23。那么,我怎

    0热度

    1回答

    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)是值数字“1”在m位文本窗口的高位位置。 这条线是什么意思? h代表什么?

    2热度

    1回答

    我试图在f#中实现Cyclic polynomial hash function。它使用按位运算符^^^和< < <。这里是一个散列的数组的函数的例子: let createBuzhash (pattern : array<'a>) = let n = pattern.Length let rec loop index pow acc = if index < n then

    13热度

    2回答

    我已经使用以下字母表生成了一个字符串。 {A,C,G,T}。而我的字符串包含超过10000个字符。我正在寻找下面的模式。 ATGGA TGGAC CCGT 我已要求使用字符串匹配算法具有O(m+n)运行时间。 m = pattern length n = text length KMP and Rabin-Karp algorithms都有这个运行时间。在这种情况下什么是最合适的算法(在Ra

    1热度

    1回答

    所以我是Haskell的新手,我必须编程Rabin Karps算法。 我觉得我的答案应该可以工作,但是当我编译时,我总是收到“let'错误的解析错误。 有人能帮我一把。 这里是我的代码: import Data.Char hash :: String -> Int hash [] = -1 hash (x:xs) = ((ord x)) rabinKarp :: String -> S

    -1热度

    1回答

    给定一个使用模数散列函数的算法,这意味着大于某个给定整数的大数将“回绕”,因此结果总是在0和给定整数之间。 例如,Rabin-Karp Algorithm需要一个滚动散列,并用一个巧妙的模。 可能的最高模数是多少?为什么是这样?

    1热度

    1回答

    我有问题实施Karp-Rabin模式marcher的天真版本;我没有得到预期的结果。这是我的例子; string='today is a good day' sub='good' 我想在上面的字符串中找到好的模式。 def kapr(n,m): for i in range(len(n)-len(m)+1): for j in range(len(m)):

    0热度

    1回答

    我在使用Karp-Rabin(无散列)进行多模式搜索时遇到了麻烦。这是我的例子: _string="today is a good day" _patterns=['good', 'day'] def multiple_pattern_search(string,substrings,size): stringsize=string[:size] for i in ra

    0热度

    2回答

    我发现了一个来自that网站的rabin karp代码,并更改为尝试。更改的代码如下。你可以在hashtable.txt中看到单词和它们的散列值。下面的例子hashtable.txt似乎是正确的。 但是,当我将M(块长度)更改为150时,我得到错误的结果。例如在hashtable.txt中,第一行和第六行必须相同,但它们的散列值是不同的。 或者当我将q(素数)更改为683303时,它也会得到错误的