哈希

哈希

单模哈希

把一个字符串\(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}\)

运算代价:最快

冲突概率:较小

image-20221003112324562

posted @ 2023-05-25 20:42  Bloodstalk  阅读(28)  评论(0编辑  收藏  举报