Birthday Problem
\(m\) 个人,\(n\) 天,没有两个人生日相同的概率为:
当 \(\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\) 的倍数。所以:
Collision number
满足 2-universal hash (\(n\) 个元素映射到 \([M]\) 中)的碰撞数为 \(X\):
马尔可夫不等式一下:
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\) 中的判别为在:
当 \(k=c\ln 2\) 时,这个概率为 \((0.6)^c\)。