旋转哈希

✍ dations ◷ 2025-11-25 04:18:29 #散列函数

旋转哈希(也称为滚动哈希、递归哈希、滚动校验和或滑动哈希)是一种哈希函数,输入的内容在一个窗口中进行移动哈希。

少数哈希函数允许快速计算滚动哈希值 — 只给出旧的哈希值,新的哈希值被快速计算出来,旧的值从窗口中移除,新的值添加到窗口中 — 类似于移动平均函数的计算方式,比其他低通滤波器更快。

主要应用之一是Rabin–Karp字符串搜索算法,该算法使用下面描述的滚动哈希。另一个流行的应用是rsync程序,它使用基于Mark Adler的adler-32的校验和作为滚动哈希。低带宽网络文件系统(LBFS)使用Rabin指纹作为其滚动哈希。

滚动哈希值最多只能是成对独立(英语:pairwise independent)的或强通用(英语:universal hashing)的。例如,它们不能是三向独立(英语:k-independent hashing)的。

通常使用仅包含乘法和加法的滚动哈希函数来解释Rabin–Karp字符串搜索算法:

其中 a {\displaystyle a} , data length , output: cut point ← 2KB //split minimum chunk size is 2KB ← 64KB //split maximum chunk size is 64KB ← ← ← // buffer size is less than minimum chunk size if ≤ then return n; if ≥ then ←     while < do ← ( << 1 ) + ] if !( & ) then return     return

其中

算法从数组下标为 M i n S i z e {\displaystyle MinSize} 开始循环,省去了处理长度不足最小分块所浪费的时间。计算当前字节下对应的指纹信息,当发现指纹信息等于提前预设好的 M a s k {\displaystyle Mask} 时,则进行分段处理。如果计算到最大的 M a x S i z e {\displaystyle MaxSize} 时仍然没有匹配到 M a s k {\displaystyle Mask} 时,此时强行进行分块。


所有滚动哈希函数在字符数上都是线性的,但其复杂度与窗口长度的关系( k {\displaystyle k} )不等。Rabin–Karp滚动哈希需要两个 k {\displaystyle k} 位数字的乘法,整数乘法是在 O ( k log k 2 O ( log k ) ) {\displaystyle O(k\log k2^{O(\log ^{*}k)})} 。通过循环多项式对ngram进行哈希处理,可以在线性时间内完成。

相关

  • 重组重组可能指的是:
  • 噻唑噻唑(英语:thiazole),或1,3-噻唑(1,3-thiazole),是一个浅黄色可燃液体,气味与嘧啶类似,化学式为C3H3NS。它包含一个五元环,其中两个顶点分别是氮原子和硫原子,另外三个是碳原子。噻唑被
  • 纽曼式投影纽曼投影式(英语:Newman projection),简称纽曼式,是表示有机化合物立体结构的一种方法,由美国化学家梅尔文·斯宾塞·纽曼于1952年命名。它是沿碳-碳键的键轴的投影,以交叉的三根键
  • 封地领地,又称封地、采地、封邑、采邑、食邑等,是无论欧洲或者中国的封建制度中都存在的、领主所管理的土地。在中国是周朝时就已经趋于成熟的制度。当时的统治者把土地封予或转封
  • 超级星期二超级星期二(英语:Super Tuesday)是美国大选年二月或三月,多个州同时举办总统候选人初选的星期二。该日多个州份会同时选出两党的候选人。由于该日的结果对选情影响巨大,各候选人
  • 布达佩斯中央市场布达佩斯中央市场(匈牙利语:Nagycsarnok)是位于匈牙利首都布达佩斯的一个农贸市场,以新鲜的农产品和选择多样而闻名。布达佩斯中央市场竣工于1897年,共有三层。地下部分和一层主
  • 艾志波艾志波(1982年10月29日-),是一名中国足球运动员,司职后卫。目前效力于中甲球队武汉卓尔。艾志波出道于武汉足球俱乐部。2000年首次进入一线队名单参加甲B联赛。2004年随队夺取中
  • 麦维德第一次世界大战阿尔弗雷德·迈尔-瓦尔德克(德语:Alfred Meyer-Waldeck,1864年11月27日-1928年8月25日),原名阿尔弗雷德·威廉·莫里茨·迈尔(Alfred Wilhelm Moritz Meyer),中文名麦
  • 陈立谦陈立谦(Teddy Chin)(1985年10月21日-),马来西亚男演员。2011年初涉电影圈,作品包括《超渡》、《守夜》、《小电影》、《东主有喜》等。2014年,他参与中国相亲节目《非常完美》成功配
  • 半衣半衣,为汉服系服装的一种女式衫衣,后世称为衫子、襦等,一般为单层。由于早期女装外衣皆为上下连裳的深衣制,半衣的“半”即只覆盖上半身的衣服。初期为平民女性所穿,后来成为贵族