描述显式通用哈希函数系列

时间:2018-10-16 00:34:24

标签: algorithm universal-hashing

在这个问题上,我得到了以下映射

 U = {0, 1, 2, 3, 4, 5, 6, 7} to {0, 1}

由此,必须派生一个显式的通用哈希函数,暗示可以使用一组4个函数来完成此操作。不幸的是,尽管搜索了有关如何执行此操作的文章,但我仍然感到困惑。非常感谢您理解如何找到此哈希函数并朝着正确的方向迈进!

编辑:

经过深思熟虑,这就是我想出的;这是正确的吗?

     0  1  2  3  4  5  6  7
---------------------------
h1 | 1  1  0  0  0  0  0  0 
h2 | 0  0  1  1  0  0  0  0
h3 | 0  0  0  0  1  1  0  0
h4 | 0  0  0  0  0  0  1  1

1 个答案:

答案 0 :(得分:2)

使用Wikipedia中的定义:

  

一个函数族H = {h:U→[m]}如果x,y∈U,x≠y:Pr h∈H [h( x)= h(y)]≤ 1 / m

在您的情况下,这意味着对于集合{0、1、2、3、4、5、6、7中的任意两个值 x y },您的四个哈希函数中最多只有两个可以将它们映射到同一位。

您的建议:

     0  1  2  3  4  5  6  7
---------------------------
h1 | 1  1  0  0  0  0  0  0 
h2 | 0  0  1  1  0  0  0  0
h3 | 0  0  0  0  1  1  0  0
h4 | 0  0  0  0  0  0  1  1

不起作用,因为有四对( x y )—即(0,1),(2,3 ),(4,5)和(6,7)—其中所有四个哈希函数将它们映射到同一位。

相反,这是一些起作用起作用的选项:

     0  1  2  3  4  5  6  7
---------------------------
h1 | 0  0  0  0  1  1  1  1
h2 | 0  0  1  1  0  0  1  1
h3 | 0  1  0  1  0  1  0  1
h4 | 0  1  1  0  1  0  0  1

     0  1  2  3  4  5  6  7
---------------------------
h1 | 0  0  0  1  0  1  1  1
h2 | 0  0  1  0  1  0  1  1
h3 | 0  1  0  0  1  1  0  1
h4 | 1  0  0  0  1  1  1  0