标题基本上都说明了一切.我尝试过谷歌搜索,但返回了大量的误报.我想我只是想知道这两个具体数字背后是否有一定的理由,或者他们是否很容易就有其他许多数字?
编辑:并且,由于数字的来源已被回答,布尔hashCode方法的编写者使用这些数字的任何理由(除了他们是素数)?其他任何一个素数都可以效果吗?
解决方法
散列函数倾向于
collisions.使用素数可以减少碰撞次数(考虑素数所具有的因子). 1231和1237都是素数.
/ E1
在做了一点研究后,我遇到了this:
Since they most probably will have no common divisors with the hashtable size (unless the prime itself divises the hashtable size),the chances of collision in common hashtable implementations would be minimized.