码迷,mamicode.com
首页 > 其他好文 > 详细

字符串hash

时间:2020-03-04 00:11:10      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:设置   sig   概率   字符串   直接   进制   value   span   size   

将整个字符串或者是字符矩阵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

标签:设置   sig   概率   字符串   直接   进制   value   span   size   

原文地址:https://www.cnblogs.com/hhyx/p/12405583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!