相关疑难解决方法(0)

散列函数为什么要使用素数模数?

很久以前,我以1.25美元的价格从交易台上买了一本数据结构书.在其中,哈希函数的解释说,由于"数学的本质",它最终应该由质数修改.

你对1.25美元的书有什么期望?

无论如何,我有多年的时间来思考数学的本质,但仍然无法弄明白.

当存在大量的桶时,数字的分布是否真的更均匀?或者这是一个老程序员的故事,每个人都接受,因为其他接受它?

language-agnostic hash data-structures

323
推荐指数
8
解决办法
9万
查看次数

为什么散列表的大小127(素数)优于128?

假设简单的统一散列,即任何给定值同样地散列到散列的任何槽中.为什么使用大小为127而不是128的表更好?我真的不明白2号码的力量有什么问题.或者它实际上如何产生任何差异.

使用除法时,我们通常会避免使用某些m值(表大小).例如,m不应该是2的幂,因为如果m = 2 ^ p,则h(k)只是k的p个最低位.

假设可能的元素只在1和10000之间,我选择表格大小为128. 127如何才能更好?所以128是2 ^ 6(1000000),127是0111111.这有什么区别?所有数字(当经过哈希处理时)仍然是127的p的最低位数.我弄错了吗?

我正在寻找一些例子,因为我真的不明白为什么这么糟糕.非常感谢提前!

PS:我知道: 哈希表:为什么大小应该是素数?

algorithm hash primes

52
推荐指数
2
解决办法
1万
查看次数