旋转哈希

✍ dations ◷ 2025-02-24 06:15:24 #散列函数

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

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

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

相关

  • FeClsub2/sub氯化亚铁是铁(II)的氯化物,化学式为FeCl2。它是高熔点顺磁性的固体,从水溶液中结晶得到绿色四水合物,比其无水物应用广泛得多。最常用的方法是用铁与氯化氢反应:用氯化氢的甲醇
  • 诉诸人身诉诸人身(拉丁语:Ad hominem),指借由与当前论题无关之个人特质,如人格、动机、态度、地位、阶级或处境等,作为驳斥对方或支持己方论证的理据。诉诸人身又称作“对人不对事”、“因
  • 鳃足纲见内文鳃足纲(学名:Branchiopoda)是甲壳亚门的一纲,体略呈虾形,是较原始的种类。本物种包括有:天使虾、介甲目、枝角亚目、背甲目及泥盆纪时期的脂甲目(Lipostraca)鳞虾科(Lepidocari
  • 1860年美国总统选举詹姆斯·布坎南 民主党亚伯拉罕·林肯 共和党1860年美国总统选举是美国第19届总统选举,于1860年11月6日举行,选举结果由共和党人、前众议员亚伯拉罕·林肯取得180票过半数选
  • 弗拉基米尔·米哈伊洛维奇·米亚西舍夫弗拉基米尔·米哈伊洛维奇·米亚西舍夫 (俄语:Владимир Михайлович Мясищев,1902年9月28日-1978年10月14日),苏联飞机设计师。1902年生于一个商业职员
  • 古来县古来县(马来语:Daerah Kulai),是马来西亚柔佛州南部的一个县。其面积为753.75平方公里,人口于2010年为251,650。该县北临居銮县,西临笨珍县,东临哥打丁宜县,南临新山县。古来县除了
  • 越南国会主席 政治主题越南国会主席(越南语:Chủ tịch Quốc hội Việt Nam/.mw-parser-output .han-nom{font-family:"Nom Na Tong","Han-Nom Gothic","Han-Nom Ming","HAN NOM A","HAN
  • 三柱草科三柱草科只有2属共5种,都是生长在热带和亚热带地区中美洲和秘鲁一带。三柱草科植物为落叶小乔木或灌木,叶一般集中生长在枝条顶端;花小,雌雄异株,雄花花瓣3-8,雌花有三个花柱;果实
  • 胡廷干胡廷干(1841年-1906年),字鼎臣,湖北光州直隶州光山县(今河南省光山县)人,清朝政治人物。同进士出身。同治十三年,登进士;光绪十二年,任户部湖广司主事。光绪十三年,任户部江西司员外郎。
  • 马力 (1957年)马力(1957年12月-),男,回族,黑龙江齐齐哈尔人,中华人民共和国政治人物,曾任宁夏回族自治区人民政府副主席,现任宁夏回族自治区政协副主席,宁夏行政学院院长。6 副主任☆