旋转哈希

✍ dations ◷ 2025-11-23 05:33:37 #散列函数

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

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

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

相关

  • 大维齐尔大维齐尔(土耳其语:Sadr-ı Azam、Serdar-ı Ekrem,奥斯曼土耳其语:صدر اعظم),音为“萨德拉赞”。源自阿拉伯语“维齐尔”(وزير),是苏丹以下最高级的大臣,相当于宰相的职务
  • 西哥特王国西哥特王国(拉丁语:Hispania Visigothica),从5世纪到8世纪,由西哥特人在罗马帝国阿基坦高卢行省境内创建并扩张到整个伊比利亚半岛的一个国家。公元507年,西哥特人被克洛维一世领
  • 山额夫人桑格夫人(英语:Mrs. Sanger),全名:玛格丽特·希金斯·桑格(Margaret Higgins Sanger,1879年9月14日-1966年9月6日),出生名:玛格丽特·路易丝·希金斯(Margaret Louise Higgins),美国控制
  • 年份列表这个页面索引年相关页面。
  • 卡尔·亨普尔卡尔·G·亨普尔(1905年1月8日-1997年11月9日),德国作家与哲学家。 是 20 世纪科学哲学运动逻辑经验主义的重要人物。 亨普尔的重要贡献包括演绎模型(又称覆盖率模型)与乌鸦悖
  • 制图卫星制图卫星(英语:Cartography Satellite,Cartosat)是一系列由印度空间研究组织负责开发的印度地球观测卫星(又称遥感、间谍卫星)。该系列卫星是属于旨在管理和监测地球资源的印度遥
  • 二柱草科参见正文二柱草科(学名:)也叫沟秆草科或脱鞘草科,只有2属2种(两个单种属)— 和 ,全部仅生长在澳大利亚西南部的一小块区域。1981年的克朗奎斯特分类法将其列入帚灯草科,1998年根据基
  • 杨熊祥杨熊祥(1883年-1928年),谱名思恭、字子安,号伯鬻,湖北省武昌市江夏县人,清末民初政治人物。光绪二十九年(1903年),登进士;同年闰五月,以主事分部学习。三十年(1904年),任山西大学堂监督。三
  • 驩州记《驩州记》(越南语:Hoan Châu Ký/驩州記?),或称《天南列传阮景氏驩州记》,是越南的一部历史小说。书中描述了越南驩州阮景氏家族在扶黎灭莫斗争中的故事,是一部谱牒式著作。《驩
  • 法比亚诺·卡鲁阿纳法比亚诺·路易吉·卡鲁阿纳(1992年7月30日-),为意大利裔美国国际象棋棋手。卡鲁阿纳在时年14岁11月又20天时成为特级大师,为当时意大利和美国史上最年轻的特级大师。