Хэш ID для случайной координаты x, y внутри граничного квадрата - PullRequest
0 голосов
/ 06 декабря 2010

У меня есть определенная область (я знаю координаты x, y каждого угла области). Мне нужно хешировать ID (массив int или char) к точке x, y, ограниченной этой границей. Полученное в результате хэшированное значение, то есть координаты x, y должны быть уникальными для идентификатора, и, предпочтительно, я не хочу, чтобы точки x, y были кластеризованы в одной части квадрата, а достаточно равномерно распределены по квадрату.

Какой-нибудь совет, как мне это сделать?

Большое спасибо заранее.

1 Ответ

0 голосов
/ 11 декабря 2010

Во-первых, я не думаю, что вы можете гарантировать уникальность.Если у вас есть maxX*maxY+1 идентификаторы, у вас обязательно будут два идентификатора с одинаковыми координатами.

Во-вторых, чтобы избежать кластеризации, используйте криптографически безопасный хеш.

В-третьих, чтобы получить x и yкоординаты (примерно / псевдокод):

 hashResult = hash(ID)
 x = hashResult modulo maxX.
 y = ( hashResult div maxX) modulo maxY
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...