Хеширование отрезков - PullRequest
       2

Хеширование отрезков

0 голосов
/ 07 сентября 2011

У меня есть ряд отрезков линии с учетом их конечных точек.мне нужно использовать хеширование для хранения линейных сегментов один за другим в подходящей структуре данных T. При генерации две конечные точки каждого сегмента должны выбираться случайным образом, а новый сгенерированный сегмент должен быть вставлен в T, только если он еще не существуетв T.

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

1 Ответ

0 голосов
/ 07 сентября 2011

Простой подход состоит в том, чтобы просто использовать множитель и сложение.

hash = 2011 * x + y;

Преимущество состоит в том, что он очень быстро вычисляется.Другие решения могут заключаться в использовании более сложных итераций над цифрами, например, аналогично алгоритму хеширования строк Java

for(int i = 0; i < n_digits; i++){
    hash = hash * 31 + x_y_digit[i];
}
...