当要散列的元素数量已知时,是否有可能拥有从字符串到整数的完美散列函数?通过完美的哈希函数,我的意思是没有碰撞的机会。
基本上我正在从一个文件中读取多个表的签名(例如,id、name、address)。不同的表可能有共同的属性(例如名称),但在不同的位置(例如列)。我希望能够问这样的问题:table1 [“name”] 是什么?或表 2 [“名称”]。
更新:我更愿意自己学习而不是使用已经存在的东西。
当要散列的元素数量已知时,是否有可能拥有从字符串到整数的完美散列函数?通过完美的哈希函数,我的意思是没有碰撞的机会。
基本上我正在从一个文件中读取多个表的签名(例如,id、name、address)。不同的表可能有共同的属性(例如名称),但在不同的位置(例如列)。我希望能够问这样的问题:table1 [“name”] 是什么?或表 2 [“名称”]。
更新:我更愿意自己学习而不是使用已经存在的东西。
请参阅GNU gperf。
GNU gperf 是一个完美的散列函数生成器。对于给定的字符串列表,它以 C 或 C++ 代码的形式生成哈希函数和哈希表,用于根据输入字符串查找值。哈希函数是完美的,这意味着哈希表没有冲突,哈希表查找只需要单个字符串比较。