python - элемент - хеш функции питон



Быстрый хеш для 2 координат, где порядок не имеет значения? (1)

Для этого вы можете использовать хеш () для frozenset .

>>> hash(frozenset([(10, 20), (11, 22)]))
1735850283064117985
>>> hash(frozenset([(11, 22), (10, 20)]))
1735850283064117985

Frozensets были специально разработаны для такого типа использования (т. Е. Frozenset - это неотъемлемо неупорядоченные коллекции, которые неизменяемы и хешируются).

Надеюсь, что этот ответ берет ваше право на то, что вам нужно :-)

Есть ли формула, которая является односторонним хешем для двух координат (a, b) и (c, d) для одного целого числа, где a, b, c и d положительны? Порядок здесь не имеет значения, поэтому формула должна давать те же результаты при заданных (a, b), (c, d) и (c, d), (a, b) . Порядок действительных чисел в каждом значении точки координат ( (a, b) не совпадает с (b, a) ). Скорость здесь - ключ, формула должна быть быстрой и иметь сложность O (1).

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





hashcode