【发布时间】:2010-10-14 14:17:31
【问题描述】:
我有一系列对象,它们唯一不同的内部状态是二维位置(2 个整数)的固定长度列表(或其他)。也就是说,它们都具有相同数量的元素,具有(可能)不同的二维值。
我将不断将新实例与所有以前存在的实例进行比较,因此编写一个好的散列函数以最大限度地减少比较次数非常重要。
你会建议我如何散列它们?
【问题讨论】:
-
值是否有界? IE。你知道 x 和 y 的最小值/最大值吗?
-
我只想说这是一个很好的例子,说明了一个简单的方法来制作一个非常糟糕的哈希函数。我已经看到
x ^ y被用作此类事情的哈希函数,这会导致大约 99.9% 的冲突率(假设像 1024x1024 这样的方形域) -
这些值受已知限制的约束,是的。它们是 x, y > 0 和 x
-
很容易编写一个看起来合理但性能不佳的哈希函数。