Вопрос проверяет понимание хэш-функций и их роли в структурах данных.
Хэш-функция преобразует данные произвольного размера в фиксированное значение (хэш). Она должна быть:
Детерминированной (одинаковые входные данные → одинаковый хэш).
Быстрой в вычислении.
Минимизировать коллизии (разные данные → разный хэш).
Хэш-функция — это алгоритм, который преобразует входные данные (например, строку или объект) в числовое значение фиксированной длины.
Основные свойства:
Детерминированность — один и тот же вход всегда даёт одинаковый хэш.
Эффективность — вычисление должно быть быстрым.
Минимизация коллизий — разные входные данные должны давать разные хэши (хотя 100% избежать коллизий невозможно).
Пример в Swift:
let str = "Hello"
print(str.hashValue) // Выведет хэш-значение строкиГде применяется:
В Dictionary и Set для быстрого доступа к элементам.
В кэшировании и проверке целостности данных.
Вывод:
Хэш-функции критичны для эффективной работы коллекций. Если объект используется как ключ в Dictionary, он должен корректно реализовывать Hashable.