gpt4 book ai didi

java - 哈希码计算

转载 作者:行者123 更新时间:2023-11-30 02:47:34 25 4
gpt4 key购买 nike

我刚刚了解了哈希码的概念,遇到了一行乘以素数不会将信息从低端转移 - 就像乘以 2 的幂一样

我没听懂这句话,谁能帮我。

谢谢。

最佳答案

此建议是针对基于多个字段计算哈希码而给出的。它基于这样的观察:乘以 0 到 32 之间的 2 的幂相当于将数字左移相应的位数,从而将数字的右侧“清零”。

考虑这样一种情况,您需要构造 10 个字段的哈希码,并将各个字段的哈希码乘以 32。这相当于将哈希码向左移动 5 位。如果这样做,最终的哈希码将不依赖于前三个字段的哈希码,因为它们的哈希码的值将从结果哈希码中移出。

这种行为是不可取的,因为最后七个字段相同的项目将具有相同的哈希码,即使前三个字段可能不同。这很糟糕,因为它增加了哈希冲突的可能性。相反,如果乘以 2 以上的素数,每个字段的哈希值的一些信息会影响最终结果,从而形成更好的哈希函数。

关于java - 哈希码计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39708924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com