Почему нехватка ячеек гарантирует совпадение

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

Здесь важна не удача и не вероятность. Сколько бы ни менялся порядок рассадки, ограничение остаётся тем же: единственный способ избежать совпадений — использовать по одному человеку на ячейку, а ячеек меньше, чем людей.

Как этот приём работает за пределами календаря

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

В информатике та же логика возникает, когда множество разных данных переводят в ограниченное число кодов или ячеек памяти. Несколько данных могут получить один и тот же код — возникает коллизия. Поэтому системы хранения и поиска должны уметь её обнаруживать и разбирать; само наличие коллизии ещё не означает, что данные потеряны.

Гарантия без прогноза

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