旋转哈希

✍ dations ◷ 2025-10-26 07:19:22 #散列函数

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

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

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

相关

  • 瓦加杜古瓦加杜古(法语:Ouagadougou,简称Ouaga)是布基纳法索的首都,也是布基纳法索的文化、经济、行政中心。11世纪建城,原为一强盛王国。14世纪时成为桑西王国首都。瓦加杜古的人口达2,20
  • 鱼龙鱼龙可能是指:
  • 伯劳科伯劳科(学名:Laniidae)在鸟类全基因组测序分类系统中是鸟纲雀形目中的一个科。这是一种食肉的小型雀鸟,生性凶猛。伯劳古称“鵙”。《尔雅》记载,“鵙,伯劳也。”《曹子建集》卷十
  • 浊齿龈后无咝塞擦音浊齿龈后无咝塞擦音是一个辅音,被用于一些口语中。国际音标写作或。此音通常作为同位异音使用。浊齿龈后无咝塞擦音的特征包括:当符号成对出现时,左边的是清音,右边的是浊音。阴
  • Lycée International de Saint-Germain-en-LayeLycée International de Saint-Germain-en-Laye是法国的一所公立国际中学,成立于1952年,位于圣日耳曼昂莱。其现任校长为 Joël Bianco。坐标:48°53′44″N 2°03′40″E / 4
  • 兰锡纯兰锡纯(1907年2月3日-1995年4月12日)是一位中国医学家,专攻心脏外科。1907年出生于山西万荣县,1920年进入太原市省立第一中学。1925年考入齐鲁大学医学院,1933年毕业于多伦多大学
  • 温奇尔西坐标:50°55′30″N 0°42′32″E / 50.9251°N 0.7088°E / 50.9251; 0.7088温奇尔西(Winchelsea)是英国英格兰的一座小镇,位于东萨塞克斯郡。温奇尔西的历史开始于中世纪。
  • 翠鸟属翠鸟属(学名)在动物分类学上是鸟纲佛法僧目翠鸟科中的一个属,包括了翠鸟科的大部分种,约有15种以上。
  • 徐东香徐东香(1983年1月15日-)是一名中国女子赛艇运动员,出生于浙江省绍兴市柯桥区,1998年进入绍兴市体校,1999年进入浙江省划船队,2001年进入国家队。徐东香多次在全国锦标赛、全运会、
  • 赤松广隆赤松广隆(1948年5月3日-)为日本政治家,日本众议院议员(10期),曾任日本社会党书记长、民主党最高顾问、农林水产大臣、立宪民主党最高顾问等职务,现任众议院副议长。赤松广隆曾于鸠山