任何猜测" c"?
的好价值// h(k) = ⌊(m · (k · c − ⌊k · c⌋)⌋
return (int) Math.floor(distinctElements * (key * c - Math.floor(key * c)));
我找到了这个:(Math.sqrt(5)-1)/ 2)
然而,还有其他任何好的选择吗?
亲切的问候
答案 0 :(得分:0)
您找到的值是称为phi(φ)的数字golden ratio。使用它实际上并不正确......你应该使用的是它的乘法逆,φ^ -1。 φ^ -1和φ^ -2具有特殊属性,无论输入的范围如何,都倾向于最优地展开散列值。
但是,对于足够大的范围,几乎任何无理数都可以。