哈希
哈希
单模哈希
把一个字符串\(s_1-s_n\) 想成一个 \(n\) 位的 \(k\) 进制数,有一个模数
$ (s_1\times k^{n-1} + s_2\times k^{n-2} + s_n\times k) \ % \ \text{mod}$
模数选取:\(\text{mod}\) 选取 $ \approx 10^9$ 的质数
运算代价:较慢
冲突概率:最大
双模哈希
$ (s_1\times k^{n-1} + s_2\times k^{n-2} + s_n\times k) \ % \ \text{mod}$
$ (s_1\times k'^{n-1} + s_2\times k'^{n-2} + s_n\times k') \ % \ \text{mod}$
模数选取: \(\text{mod}\) 和 \(\text{mod'}\) 选取 $ \approx 10^9$ 的质数
运算代价:最慢
冲突概率:最小
自然溢出
unsigned long long,超过 \(2^{64}\) 会自然溢出到0
模数:\(2^{64}\)
运算代价:最快
冲突概率:较小