字符串hash
Posted hhyx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串hash相关的知识,希望对你有一定的参考价值。
将整个字符串或者是字符矩阵hash为一个P进制数字,数字需要对2^64取余数,unsigned long long 即为2^64,所以将所有与字符串相关的数字都设置为ull即可,
当P=131或P=13331的时候冲突概率几乎为0,对字符串的操作可以直接对字符串对应的P进制数字进行
已知 str 的hash值为hash(str),在str最后添加一个字符
c的操作为
H(str + c)= (hash(str)* P +value(c))mod M
乘P相当于P进制下的左移,value(c)即字符c的P进制数字
字符串str数字为hash(str),str+T 的值为hash(str+t)str在高位
则T为hash(T)=(hash(str+T)-hash(str)*P ^ ( len(T) ))mod M
即S后面不上0
先加入的在p进制中的高位
以上是关于字符串hash的主要内容,如果未能解决你的问题,请参考以下文章