我有一些给定端点的线段。我需要使用散列将线段逐个存储在合适的数据结构中。在生成时,应该随机选择每个段的两个端点,并且只有在尚未存在的情况下才应在T中插入新生成的段。在T。
有人可以建议一个合适的散列函数,通过它我可以唯一地存储线段的端点。
答案 0 :(得分:0)
一种简单的方法是使用乘数和加法。
hash = 2011 * x + y;
它的好处是计算速度非常快。其他解决方案可能是对数字使用更复杂的迭代,类似于Java字符串散列算法
for(int i = 0; i < n_digits; i++){
hash = hash * 31 + x_y_digit[i];
}