
Choosing a multiplier for a (string) hash function您对选择用于(乘法)哈希函数的乘法器有任何建议/规则。该函数正在计算字符串的哈希值。 您想使用相对于您的组合大小而言最重要的东西。这样,当您循环时,您将不会得到刚尝试过的相同数字。 我最近与一位同事就哈希函数进行了有趣的讨论。我们的结论如下: 如果与标准语言中的默认实现相比,如果确实需要编写一个良好的散列函数以最大程度地减少冲突,则需要高级数学知识。 如果您正在编写自定义哈希函数可以显着改善应用程序性能的应用程序,那么您就是Google,并且有很多数学博士可以从事这项工作。 很抱歉不能直接回答您的问题,但是最重要的是,实际上没有必要为String编写您自己的哈希函数。您正在使用什么语言?我以为有一种简单的方法可以计算"足够好"的哈希码。 从历史上看,33似乎是一个受欢迎的选择,并且它通常运行良好。没有人知道为什么。有关更多详细信息,请参见此处 |