旋转哈希

✍ dations ◷ 2025-08-24 13:28:21 #散列函数

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

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

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

相关

  • 粪口途径粪口路径(也称为口腔-粪便路径或者口粪路径),是一种疾病传播(英语:Transmission (medicine))途径。具体指的是,病原体由一个宿主的粪便中被引入另一个宿主的口腔中的传播方式。在一
  • 李知勋 (SEVENTEEN)李知勋(朝鲜语:이지훈 ,1996年11月22日-),艺名WOOZI (朝鲜语:우지 ,日语:ウジ ),韩国男艺人、作词家、作曲家,韩国釜山广域市人。 Pledis娱乐旗下13人男子流行音乐团体SEVENTEEN成员,也
  • 加利福尼亚柏木加利福尼亚柏木(学名:)为柏科柏木属下的一个种,只分布在美国加利福尼亚州沿岸。
  • 戴雪艾博·文·戴雪,KC,FBA(英语:Albert Venn Dicey 1835年2月4日-1922年4月7日),英国法学家和宪法学者,并以著作《宪法学导论》而闻名于世。该书阐述的原则被视为英国的不成文宪法。他
  • 施沛施沛,字沛然,号笠泽居土。松江府华亭县人。明朝医学家。精于医学,曾替户部许替勿治疗痛痹,以丹参虎骨酒、草薢蠲痹汤疗之,不到一个月,即能行走。著有《祖剂》4卷、《云起堂诊籍》1
  • 国歌 (立陶宛)《国歌》(立陶宛语:Tautiška giesmė)又名《立陶宛,我的祖国》(Lietuva, Tėvyne mūsų)、《立陶宛赞歌》(Lietuvos himnas),其曲词为1898年当立陶宛尚属于沙皇俄国时,由文萨斯·库
  • 大本营大本营可以指:
  • 幸运成像幸运成像(英文 lucky imaging或lucky exposures)是用于天文摄影的一种成像技术。它采用多次短时间(100毫秒或以下)曝光,然后挑选其中受大气影响最少的部分照片进行移动和叠加,生成
  • 大教院大教院,是日本明治时代初年设置对国民濯输尊皇爱国思想的机关,提出三条教宪(敬神爱国、明白天理人道、奉载皇上)作为国民强化运动的支柱。明治5年(1872年)3月,废除神祇省,改设教部
  • 春苗《春苗》是叙述赤脚医生故事的电影,1975年10月1日上映。上海川沙县江镇公社是“赤脚医生”一词的起源地。1970年7月1日,《赤脚医生》创作组到江镇体验生活一年,接触当时树立的