将ID散列到边界方块内的随机x,y坐标

时间:2010-12-05 21:49:08

标签: hash

我有一个已定义的区域(我知道该区域每个角的x,y坐标)。我需要将ID(int或char数组)散列到限制在该边界区域内的x,y点。得到的散列值,即x,y坐标需要对ID唯一,并且我不希望x,y点聚集在正方形的一部分中,而是均匀地分布在正方形上。

关于如何解决这个问题的任何建议?

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

首先,我认为你不能保证唯一性。如果您有maxX*maxY+1个ID,则必须在同一坐标上有两个ID。

其次,要避免群集,请使用加密安全哈希。

第三,获取x和y坐标(粗略/伪代码):

 hashResult = hash(ID)
 x = hashResult modulo maxX.
 y = ( hashResult div maxX) modulo maxY