2010-12-05 17 views
0

私は定義された領域を持っています(私は領域の各コーナーのx、y座標を知っています)。私はその境界領域内に閉じ込められたx、y点にID(intまたはchar配列)をハッシュする必要があります。結果として得られるハッシュ値、すなわちx、y座標はIDと一意である必要があり、好ましくは、x、y点が正方形の1つの部分に集中しているのではなく、むしろ正方形全体にわたって均等に分布していることを望まない。IDをハッシュする境界の四角内のランダムなx、y座標

私はこれについてどうすればいいのですか?

事前に感謝します。

答えて

0

まず、一意性を保証することはできません。 IDがmaxX*maxY+1の場合、必ず同じ座標に2つのIDが必要です。

第2に、クラスタリングを避けるために、暗号的に安全なハッシュを使用します。

第三に、x座標とy座標(おおよそ/擬似コード)を取得する:

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