2010-12-05 35 views
0

我有一個定義區域(我知道該區域每個角的x,y座標)。我需要將ID(int或char數組)散列到限制在該邊界區域內的x,y點。得到的散列值即x,y座標對於ID而言必須是唯一的,並且最好我不希望將x,y點全部聚集在正方形的一部分中,而是均勻地分佈在正方形上。將一個ID散列到邊界正方形內的隨機x,y座標

任何關於如何去做這件事的建議?

非常感謝提前。

回答

0

首先,我不認爲你可以保證唯一性。如果您有maxX*maxY+1 ID,則必須在同一座標處有兩個ID。

其次,爲避免聚類,請使用密碼安全哈希。

第三,得到x和y座標(約/僞代碼):

hashResult = hash(ID) 
x = hashResult modulo maxX. 
y = (hashResult div maxX) modulo maxY 
相關問題