旋转哈希

✍ dations ◷ 2025-09-18 06:30:35 #散列函数

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

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

主要应用之一是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进行哈希处理,可以在线性时间内完成。

相关

  • 特林吉特语特林吉特语(英语:Tlingit language,发音为/ˈklɪŋkɪt/;特林吉特语:Lingít 宽式IPA:/ɬɪŋkɪ́t/)是一种现时在美国阿拉斯加东南部及加拿大西部通行的语言,是纳-德内语系的成员
  • 几何中心n 维空间中一个对象X的几何中心或形心是将X分成矩相等的两部分的所有超平面的交点。非正式地说,它是X中所有点的平均。如果一个物件质量分布平均,形心便是重心。如果一个对象
  • 科学大纲 §形式科学以下大纲是科学的主题概述:科学(英语:Science,希腊语:Επιστήμη)是通过经验实证的方法,对现象(原来指自然现象,现泛指包括社会现象等现象)进行归因的学科。科学活动所得的知识
  • 外部效度外部效度(External Validity),是指实验结果类推到其他母体或环境的有效性(普遍适应性)。外部效度是基于特殊科学实验的处理外部有效性,而对实验能否可以类推到其他母体或环境的推
  • 下水下水(英语:haslet)又叫“某杂”,如“猪杂”、“牛杂”。“下水”广义指一般指动物内脏,或泛指除去肌肉以外的其他动物器官,狭义指猪肠和猪肺。相对下水,上水为猪腰和猪肝,客家菜有一
  • 运动功能减退症运动功能减退症是指一种身体运动能力下降的病症。这种病往往与其他疾病相关连,例如:基底节疾病(如帕金森氏症)、心理健康失调和因疾病而长期不作任何活动所致。运动功能减退症包
  • 阿里不哥阿里不哥(蒙古语:.mw-parser-output .font-mong{font-family:"Menk Hawang Tig","Menk Qagan Tig","Menk Garqag Tig","Menk Har_a Tig","Menk Scnin Tig","Oyun Gurban Ulus
  • 莱顿尼亚莱顿尼亚(瑞典语:Ladonien)是一个位于瑞典南部的私人国家。 于1996年,由瑞典艺术家拉斯维克(英语:Lars Vilks)宣布成立。它位于瑞典南边小城赫尔辛堡城外不远的的Kullaberg国家自然
  • 蔡莲舫蔡莲舫(1875年-1936年),名占开,号雪桥,为台中清水蔡源顺家族的成员、日治时期的中部仕绅。台中中学校共同创办人。
  • 制度文明制度文明,与物质文明、精神文明共同形成人类文明演进的三个主要阶段。人类演进到群体生活后,必须发展规则来组织、协调大家的行为,因而形成制度文明。制度文明体制有自我复制性