当前位置: 首页 > news >正文

Advanced Algorithm —— Hashing and Sketching

Birthday Problem

\(m\) 个人,\(n\) 天,没有两个人生日相同的概率为:

\[\displaystyle{ \begin{align*} \Pr[\mathcal{E}]=\left(1-\frac{1}{n}\right)\cdot \left(1-\frac{2}{n}\right)\cdots \left(1-\frac{m-1}{n}\right) &= \prod_{k=1}^{m-1}\left(1-\frac{k}{n}\right), \end{align*} }\]

\(\displaystyle{ m=\sqrt{2n\ln \frac{1}{\epsilon}} }\)\(\Pr[\mathcal{E}] \le \epsilon\)

Universal Hashing

这个定义是对一个 hash 函数族,\(k\) 个不同变量经过这个 hash 后相等的概率不会比随机均匀好。
图片

2-Universal:
图片
考虑对于 \(x_1\neq x_2\),当 \(\displaystyle{ ((ax_1+b)\bmod p)\bmod M=((ax_2+b)\bmod p)\bmod M }\)\(\displaystyle{ (a(x_1-x_2)\bmod p)\bmod M =0}\)。注意当 \(a\) 取遍 \(1\dots p-1\) 时,\(a(x_1-x_2)\bmod p\) 的值取遍 \(1\dots p-1\),因此共有 \(\lceil p/M\rceil -1\)\(a\) 会使得 \(a(x_1-x_2)\bmod p\)\(M\) 的倍数。所以:

\[\displaystyle{ \Pr[h(x_1)=h(x_2)]\le \frac{p(p-1)/M}{p(p-1)}=\frac{1}{M}.} \]

Collision number

满足 2-universal hash (\(n\) 个元素映射到 \([M]\) 中)的碰撞数为 \(X\):

\[\displaystyle{ \mathbf{E}[X]=\mathbf{E}\left[\sum_{i\lt j}X_{ij}\right]=\sum_{i\lt j}\mathbf{E}[X_{ij}]=\sum_{i\lt j}\Pr[X_{ij}=1]\le{n\choose 2}\frac{1}{M}\lt \frac{n^2}{2M}. }\]

马尔可夫不等式一下:

\[\displaystyle{ \Pr\left[X\ge \frac{n^2}{2\epsilon M}\right]\le\Pr\left[X\ge \frac{1}{\epsilon}\mathbf{E}[X]\right]\le\epsilon. }\]

Set Membership

图片
图片

PERFECT HASH:\(h\) 没有碰撞。

由 Collision number 可知,当 \(M=n^2\) 时,有碰撞的概率不超过 \(1/2\)。但是用 \(n^2\) 空间太拉了。

一个更完美的方法是先用一个 hash 函数分成 \(n\) 个桶,每个桶内部使用一个 hash 函数完成 perfect hash,需要空间为桶大小的平方。

图片

空间分析使用碰撞对数即可。

Bloom filter

\(cn\) 个 bit 以及 \(k\) 个 hash (\([N]\rightarrow [cn]\))函数:

图片

错误概率,把一个不在 \(S\) 中的判别为在:

\[\displaystyle{ \begin{align*} \Pr[\,\text{wrongly answer ''yes''}\,] &=\Pr[\,\forall 1\le i\le k, A[h_i(x)]=1\,]\\ &=\Pr[\, A[h_1(x)]=1\,]^k=(1-\Pr[\, A[h_1(x)]=0\,])^k\\ &=\left(1-\left(1-\frac{1}{cn}\right)^{kn}\right)^k\\ &\approx \left(1- e^{-k/c}\right)^k \end{align*} }\]

\(k=c\ln 2\) 时,这个概率为 \((0.6)^c\)

http://www.wxhsa.cn/company.asp?id=6040

相关文章:

  • CF2136 Codeforces Round 1046 (Div. 2) 补题
  • 【IEEE出版、EI检索稳定】第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)
  • 缺省源
  • 97. 交错字符串
  • MODint(自动取模)
  • BFD实验
  • 2025.9.16——卷1阅读程序1、2
  • 用Context Offloading解决AI Agent上下文污染,提升推理准确性
  • HCIP-BFD
  • MISC相关
  • VRRP实验
  • 在 Windows 10 上安装 FFmpeg 8.0
  • 25/9/15(补)
  • [Paper Reading] DINOv3
  • 25/9/16
  • JavaDay5
  • 揭秘Mobile Me数据挖掘:从WebDAV探测到隐藏文件发现
  • 25/9/14(补)
  • 【IEEE出版、往届会后4个月EI检索】第二届计算机视觉、图像处理与计算摄影国际学术会议(CVIP 2025)
  • 洛谷 P10936 导弹防御塔 题解
  • P13694 [CEOI 2025] Splits 题解
  • VSCode + Python 开发踩坑:虚拟环境不在项目根目录导致包无法识别该怎么办
  • 图像与视频编码
  • Python爬虫实战:研究Pandas,构建地理信息资料采集和分析便捷的系统
  • 初赛复习
  • 用户帐户控制(UAC)
  • fg/bg/jobs/kill命令--linux
  • 【OC】单例模式 - 教程
  • ios电脑系统和windows系统
  • HCIP-VRRP