散列值计算的时候为什么要用到质数?

发布于 2022-08-29 20:48:01 字数 45 浏览 9 评论 0

散列值计算的时候为什么要用到质数?
这个质数怎么选择?比如137

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

温柔嚣张 2022-09-05 20:48:01

最近刚学过,散列表解决冲突有两种方法,一是分离链接法,个人感觉和质数关系不大,第二种是开放定址法,如果非质数,碰撞几率较大,而且备选单元个数也会少很多。
我看得数据结构与算法分析一书。

谷夏 2022-09-05 20:48:01

正在了解这个散列, 在想能否通过建立质数key的时候判断是否表中已经含有key就跳过?不过可能多一次遍历,

醉梦枕江山 2022-09-05 20:48:01

听说过十七年蝉吗?

********补充 *****************

对于踩我的那几个同学,估计你们也没听过这个梗,我还是补充一下吧。

我回答的另一个问题:hashtable的size, 为什么一般选为质数?

用质数是为了防止冲突。比如一个hashtable(长度为3)的哈希算法是:

a[0]*1 + a[1]*2 + a[2]*4

那么

[0,1,1] 
[2,2,0]
[4,1,0]
[2,0,1]
…… 

就会产生同样的值 6。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文