Algorithm 如果从通用哈希函数族中随机选择哈希函数,如何查找给定键的值?

Algorithm 如果从通用哈希函数族中随机选择哈希函数,如何查找给定键的值?,algorithm,data-structures,hashtable,Algorithm,Data Structures,Hashtable,我正在coursera上一门关于数据结构的课程,最近我读到了有关通用哈希函数族的内容。如果我从一个通用的哈希函数族中随机选择一个哈希函数,我将如何精确地重新映射它以查找值。如果我必须记住为每个键选择的函数,那么我应该为它维护一个列表。这种为密钥本身找到正确哈希函数的评估将花费线性时间,这违反了哈希表的恒定时间查找。我应该如何继续实现它?当制作一个哈希映射时,您使用家族中的一个函数。当重新灰化整个贴图(通常是因为容量不足或冲突过多)或创建单独的贴图时,可以从族中选择其他哈希函数。您不会使用两个不同

我正在coursera上一门关于数据结构的课程,最近我读到了有关通用哈希函数族的内容。如果我从一个通用的哈希函数族中随机选择一个哈希函数,我将如何精确地重新映射它以查找值。如果我必须记住为每个键选择的函数,那么我应该为它维护一个列表。这种为密钥本身找到正确哈希函数的评估将花费线性时间,这违反了哈希表的恒定时间查找。我应该如何继续实现它?

当制作一个哈希映射时,您使用家族中的一个函数。当重新灰化整个贴图(通常是因为容量不足或冲突过多)或创建单独的贴图时,可以从族中选择其他哈希函数。您不会使用两个不同的函数来尝试创建同一个哈希映射。

当创建一个哈希映射时,您使用该系列中的一个函数。当重新灰化整个贴图(通常是因为容量不足或冲突过多)或创建单独的贴图时,可以从族中选择其他哈希函数。您不会使用两个不同的函数来尝试创建相同的哈希映射。

对于每个条目,从通用哈希函数族中随机选择一个哈希函数。它是这样工作的,对吗?还是我错了?在那篇文章的wikipedia页面上,有人提到“几个哈希表的实现都是基于通用哈希的。在这种应用中,通常只有在软件注意到“太多”键发生冲突后,才会选择新的哈希函数;在此之前,同一个哈希函数会被反复使用。”—对于哈希映射,整个映射确实需要使用相同的函数。那么你的意思是所有哈希表都是使用确定性哈希函数实现的,没有任何东西是随机的?@J.Selva:So,最初在哈希表实现开始时,您有一个哈希函数族,在插入第一个元素之前,您只需从该族中随机选取一个哈希函数,并将该哈希函数用于所有后续插入。因此,本质上它是一个哈希表,其中哈希函数最初是从哈希函数族中选择的,除了初始选择之外,没有随机化,我们在未来的所有操作中都使用选定的哈希函数:@Aravind获得了它,谢谢!对于每个条目,从通用哈希函数族中随机选择一个哈希函数。它是这样工作的,对吗?还是我错了?在那篇文章的wikipedia页面上,有人提到“几个哈希表的实现都是基于通用哈希的。在这种应用中,通常只有在软件注意到“太多”键发生冲突后,才会选择新的哈希函数;在此之前,同一个哈希函数会被反复使用。”—对于哈希映射,整个映射确实需要使用相同的函数。那么你的意思是所有哈希表都是使用确定性哈希函数实现的,没有任何东西是随机的?@J.Selva:So,最初在哈希表实现开始时,您有一个哈希函数族,在插入第一个元素之前,您只需从该族中随机选取一个哈希函数,并将该哈希函数用于所有后续插入。因此,本质上它是一个哈希表,其中哈希函数最初是从哈希函数族中选择的,除了初始选择之外,没有随机化,我们在未来的所有操作中都使用选定的哈希函数:@Aravind获得了它,谢谢!