C 哈希表-完美哈希

C 哈希表-完美哈希,c,data-structures,hashtable,C,Data Structures,Hashtable,我想为字典创建一个具有完美哈希的哈希表。问题是我还是不太明白。我的理解是,你们有两个普适函数h1和h2。然后将键映射到带有h1的表,然后为第一个表中的每个插槽创建一个新表 那很好。问题是: 1) h1是一个函数,它拾取一个随机向量'a'={a1,a2,…,an},然后将其与键(也是一个向量)进行点积。 问题1: 假设我有一个字符串作为我的键,我将如何选择向量“a”,以及如何选择键 问题2: 假设h2发生碰撞,则从同一函数族中选择另一个h2。但是,当我搜索它时,我将如何找到它呢?我必须再次经历同样

我想为字典创建一个具有完美哈希的哈希表。问题是我还是不太明白。我的理解是,你们有两个普适函数h1和h2。然后将键映射到带有h1的表,然后为第一个表中的每个插槽创建一个新表

那很好。问题是: 1) h1是一个函数,它拾取一个随机向量'a'={a1,a2,…,an},然后将其与键(也是一个向量)进行点积。 问题1: 假设我有一个字符串作为我的键,我将如何选择向量“a”,以及如何选择键

问题2: 假设h2发生碰撞,则从同一函数族中选择另一个h2。但是,当我搜索它时,我将如何找到它呢?我必须再次经历同样的过程


如果有人决定帮助我,我会非常感谢你举个例子(不必太复杂)。

考虑将问题缩小到一个问题——你到处都是,根据你所说的,看起来你还没有尝试过很多东西。此外,这似乎更像是一个理论问题,而不是一个软件开发问题。通过把它缩小到一个问题,并解释你所理解的任何东西,这种外观应该会有所改善,并更多地围绕主题。