rabin-karp

    -1熱度

    1回答

    給定一個使用模數散列函數的算法,這意味着大於某個給定整數的大數將「迴繞」,因此結果總是在0和給定整數之間。 例如,Rabin-Karp Algorithm需要一個滾動散列,並用一個巧妙的模。 可能的最高模數是多少?爲什麼是這樣?

    0熱度

    2回答

    我發現了一個來自that網站的rabin karp代碼,並更改爲嘗試。更改的代碼如下。你可以在hashtable.txt中看到單詞和它們的散列值。下面的例子hashtable.txt似乎是正確的。 但是,當我將M(塊長度)更改爲150時,我得到錯誤的結果。例如在hashtable.txt中,第一行和第六行必須相同,但它們的散列值是不同的。 或者當我將q(素數)更改爲683303時,它也會得到錯誤的

    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

    1熱度

    1回答

    所以我是Haskell的新手,我必須編程Rabin Karps算法。 我覺得我的答案應該可以工作,但是當我編譯時,我總是收到「let'錯誤的解析錯誤。 有人能幫我一把。 這裏是我的代碼: import Data.Char hash :: String -> Int hash [] = -1 hash (x:xs) = ((ord x)) rabinKarp :: String -> S

    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

    1熱度

    1回答

    什麼是可用於實現Rabin-Karp string search algorithm一些好的哈希函數好的哈希函數?我只知道多項式哈希的,但它有一些缺陷 - 最明顯的是,如果散列做模2 ,有哪些是保證經常產生碰撞測試(使用另一模量是不切實際的,因爲mod操作非常貴)。那麼,有沒有一個快速,易於編寫的好的散列函數? P.S.我知道buzhash,但我想知道是否有其他的替代方案...

    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