2
と準線形空間におけるほぼ普遍的な文字列ハッシュ
ここでは文字列のハッシュ関数の2人の家族がいる:x⃗ =⟨x0x1x2…xm⟩x→=⟨x0x1x2…xm⟩\vec{x} = \langle x_0 x_1 x_2 \dots x_m \rangle pppxi∈Zpxi∈Zpx_i \in \mathbb{Z_p}h1a(x⃗ )=∑aiximodpha1(x→)=∑aiximodph^1_{a}(\vec{x}) = \sum a^i x_i \bmod pa∈Zpa∈Zpa \in \mathbb{Z}_p∀x≠y,Pa(h1a(x)=h1a(y))≤m/p∀x≠y,Pa(ha1(x)=ha1(y))≤m/p\forall x \neq y, P_a(h^1_a(x) = h^1_a(y)) \leq m/p 用、のための。LemireとKaserは、「非常に普遍的な文字列ハッシュは速い」で、このファミリが2独立であることを示しました。これは、ことを意味しxi∈Z2bxi∈Z2bx_i \in \mathbb{Z}_{2^b}h2a⃗ =⟨a0a1a2…am+1⟩(x⃗ )=(a0+∑ai+1ximod22b)÷2bha→=⟨a0a1a2…am+1⟩2(x→)=(a0+∑ai+1ximod22b)÷2bh^2_{\vec{a} = \langle a_0 a_1 a_2 \dots a_{m+1}\rangle}(\vec{x}) = (a_0 + \sum a_{i+1} x_i \bmod 2^{2b}) …