我为大小为10的哈希表(索引0-9)和使用中方法的散列元素创建哈希函数。 问题是我是否应该使用1个中间数字或2个数字,然后使用mod 10。 问题是如果我选择取2个中间数字然后取mod 10,如果平方数有3个数字,这个方法将失败。那我将拿两个数字? 如果我选择有1个中间数字,那么当平方数字具有偶数位数时,我会遇到问题。我知道在这种情况下,中间两个元素都是由原始数字的所有元素的贡献构成的。 现在,我正在使用{floor(n / 2 + 1)}个数字。这种方式适用于三位数的平方数,当平方数甚至没有时。数字,它取中间两位的后半位数。 我想知道这样做的更有效方法是什么? 感谢。
答案 0 :(得分:0)
我被教导说,正方形哈希的正确方法是使用1位数,如果得到的方格的长度是奇数,如果它甚至使用中间2位数。