标签:math 处理 for mat class 冲突 推出 前言 hash
A:这么简单的东西,怎么现在才学??
B:别提了,还不是因为菜o(╥﹏╥)o
A:那打算讲些什么东西
B:\(BKDRHash\)、\(Rabin-karp\)以及简单应用
所谓字符串哈希:其实就是把字符串映射成数值储存下来分别直接比较
\(BKDRHash\):程序便于记忆和使用,冲突概率较低,在各大书籍和资料中测试效果位居前列
\(Rabin-karp\):便于提取字符串子串
\(BKDRHash\):把字符串当成seed进制数来处理
const int seed=31;
inline int BKDRhash(){
int H(0),len(strlen(s));
for(int i=0;i<len;++i)
H=(H*seed+s[i])&0xFFFFFFF;
return H;
}
\(BKDRHash\):\(h[i]=(s[0]×p^{i}+s[1]×p^{i-1}+...+s[i]×p^0(mod ~x)\),手玩能推出\(h[i][j]=h[j]-h[i-1]×p^{j-i+1}(mod ~x)\)
inline int RK(){
int len(strlen(s));
for(int i=0;i<len;++i)
H[i]=(H[i-1]*p+s[i])%x;
return H[len-1];
}
挖坑待填
标签:math 处理 for mat class 冲突 推出 前言 hash
原文地址:https://www.cnblogs.com/y2823774827y/p/10372330.html