Коллизия — одинаковый hash у разных входов. Она неизбежна при ограниченном диапазоне хешей; структура данных должна проверять равенство и корректно разрешать столкновения.
Какие проблемы могут возникать у хэш-функции (коллизии)?
Коллизия — одинаковый hash у разных входов. Она неизбежна при ограниченном диапазоне хешей; структура данных должна проверять равенство и корректно разрешать столкновения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Коллизия — одинаковый hash у разных входов. Она неизбежна при ограниченном диапазоне хешей; структура данных должна проверять равенство и корректно разрешать столкновения.
В хеш-таблицах применяют цепочки или открытую адресацию. При плохом распределении длинные цепочки/probing ухудшают поиск вплоть до линейного в неблагоприятном случае. Для пользовательских ключей важно согласование __eq__ и __hash__: равные объекты обязаны иметь одинаковый hash, но обратное неверно. Криптографическая стойкость и хороший hash для таблицы — разные требования. Нельзя считать совпавший hash доказательством идентичности файла или объекта.