Sex*_*ast 9 string algorithm hash rabin-karp
在通过除以素数将散列减少到模值后,我无法理解滚动散列算法的工作原理。
考虑数字中 5 位数字的序列123456。
第一个块是12345. 我存储值,在下一个窗口中,输入 6,输出 1。
所以新的哈希将是(12345-1*10^4)*10 + 6 = 23456. 这是相当直观的。
很明显,这些数字很大,所以我们需要一个模函数来保持它们很小。假设我101为此目的取质数。
所以12345会减少到23. 那么,如何从中得出下一个窗口的滚动哈希23456?
您以与计算相同的方式计算它23456,但始终使用模数101。
(((23 - (10^4 mod 101))*10) mod 101 + 6) mod 101 = 24.
Run Code Online (Sandbox Code Playgroud)
这是您想要的价值,因为23456 mod 101 = 24.
| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |