@kgbplus

Могут ли два объекта разных типов иметь одинаковый хэш?

Ну то есть:
type(a) != type(b) and hash(a) == hash(b)

В теории наверное может, а на практике есть какая то защита от этого?
  • Вопрос задан
  • 474 просмотра
Решения вопроса 2
@fireSparrow
Не нужна тут ни какая защита.
У хэша нет задачи быть разным для разных объектов. Хэш нужен в основном для того, чтобы обеспечивать работу таких структур данных как словарь или множество. А там коллизии (ситуации, когда разные объекты имеют одинаковый хэш) - вполне штатное явление.
Хотя, конечно, и стараются делать так, чтобы оно возникало не очень часто, иначе производительность проседает.

Если интересны подробности, почитайте про хэш-таблицы:
https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%...
Ответ написан
@kgbplus Автор вопроса
Я традиционно сам себе еще ответ напишу )
В принципе в соседнем ответе все разложили по полочкам. Еще подробнее здесь
По сути вопроса - совпадения хэшей бывают, это называется коллизия хеш-функции. Специальной защиты от них нет (почему - в ответе выше), но стараются выбирать такие хеш-функции, чтобы совпадения были как можно реже.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект