Принцип Дирихле за 10 минут
Слышал про принцип Дирихле, но так и не понял, как его применять? Лови. Это один из самых частых приёмов олимпиадной математики — и при этом один из самых простых по идее. Через десять минут ты будешь узнавать его в задачах и решать как минимум на школьном и муниципальном туре. Договорились? Погнали.
Что это вообще такое — на пальцах
Представь: у тебя есть 10 зайцев и 9 клеток. Рассаживаешь зайцев по клеткам — как угодно, хоть всех в одну. Утверждение: хотя бы в одной клетке точно окажется не меньше двух зайцев. Почему? Если бы в каждой клетке сидело максимум по одному, всего поместилось бы максимум 9 зайцев. А у нас 10. Противоречие — значит, где-то набилось двое и больше.
Вот и весь принцип. По-научному его называют принципом Дирихле (а в англоязычных учебниках — pigeonhole principle, «принцип голубятни»). Строгая формулировка звучит так:
Доказательство ты только что прочитал в истории про зайцев — это и есть рассуждение от противного. Запомни его, оно работает всегда: «допустим, везде по одному — тогда всего не больше , а у нас , не сходится».
Но это ещё не всё. Есть обобщённая форма — и именно она вытаскивает сложные задачи. Звучит так: если разложить предметов по ящикам, то найдётся ящик, в котором не меньше чем
предметов. Эти скобки — «округление вверх» (потолок): , . Идея та же самая: если поделить предметы по ящикам максимально ровно, в самом «загруженном» ящике всё равно наберётся хотя бы среднее, округлённое вверх. Например, 10 предметов на 3 ящика: , и правда — как ни раскидывай (3+3+4 — лучший расклад), в одном будет минимум 4. Когда , эта дробь больше единицы, потолок даёт минимум 2 — то есть простая форма просто частный случай обобщённой.
Всё. Матчасть кончилась. Дальше — самое интересное: как этим пользоваться.
Задача-разминка: носки в темноте
Классика, с которой всё начинают. В ящике лежат носки двух цветов — чёрные и белые, навалом. Ты достаёшь их в темноте, не глядя. Сколько носков надо вытащить, чтобы гарантированно получить пару одного цвета?
Расставляем по полочкам — буквально. Что здесь клетки, а что зайцы?
- Клетки — это цвета. Их два: .
- Зайцы — это вытащенные носки.
Берём 3 носка (). Получаем — значит, по принципу Дирихле два носка попадут в одну «клетку», то есть окажутся одного цвета. Пара есть! А двух не хватит: можно вытащить один чёрный и один белый — и пары нет. Ответ: 3.
Чувствуешь приём? Ты не перебираешь варианты и не считаешь вероятность. Ты просто говоришь: «категорий две, предметов три — куда-то двое да попадут». Это и есть Дирихле в чистом виде.
Как распознать задачу на Дирихле
Прежде чем идти дальше — давай научимся ловить такие задачи в дикой природе. Маркеры:
- В условии есть слова «обязательно найдётся», «всегда существуют», «докажите, что есть». Тебя просят доказать существование, а не что-то посчитать или предъявить конкретный объект.
- Встречается «хотя бы два», «не менее », «как минимум».
- Есть естественное разбиение на конечное число категорий: цвета, остатки от деления, области на плоскости, дни недели.
- Предметов больше, чем категорий.
Алгоритм решения всегда один:
- Назначь клетки (категории).
- Назначь зайцев (объекты).
- Проверь, что зайцев больше (), или прикинь .
- Вытащи нужное свойство.
Самое сложное тут — увидеть, что назначить клетками. На разминке это было очевидно (цвета), а вот дальше — уже хитрее.
Задача-классика: разность, кратная
Типичная задача школьного и муниципального уровня. Дано целое число. Докажи, что среди них найдутся два, разность которых делится на .
Где тут клетки? Ключевая идея: клетки — это остатки от деления на . Любое целое при делении на даёт остаток — всего вариантов. Это и есть наши клетки: .
Зайцы — наши чисел. Получаем , и по принципу Дирихле два числа и попадут в одну клетку — то есть дадут одинаковый остаток при делении на . А раз остатки равны, их разность делится на нацело. Что и требовалось.
Останься на секунду на этом моменте — он важный. Клетками оказались не сами числа и не что-то очевидное из условия, а остатки от деления. Это любимый трюк олимпиадного Дирихле: когда в задаче пахнет делимостью — почти наверняка клетки прячутся в остатках.
Задача посложнее: точки в квадрате
Шагаем к геометрии. В квадрате со стороной 2 отметили 5 точек. Докажи, что найдутся две точки на расстоянии не больше друг от друга.
Здесь не сразу видно, где клетки — точки же расположены как попало. Приём: разбей квадрат сам. Делим большой квадрат на четыре одинаковых квадратика . Вот тебе клетки: .
Зайцы — пять точек: . Значит, две точки попадут в один маленький квадратик. А какое максимальное расстояние между двумя точками внутри квадрата ? Его диагональ:
Дальше диагонали внутри квадрата не убежишь, поэтому расстояние между нашими двумя точками не больше . Готово.
Видишь общий мотив? Клетки не лежали в условии готовыми — ты их создал сам, разрезав фигуру. Это второй ключевой навык: иногда разбиение надо придумать.
Шаг к настоящему олимпиадному уровню
И вот финальная задача — на ней видно, чем олимпиадный Дирихле отличается от школьного. Дана последовательность из целых чисел . Докажи, что найдётся несколько идущих подряд, сумма которых делится на .
Тут есть тонкость: чисел всего , а делителем выступает тоже — кажется, что зайцев и клеток поровну, принцип не запустить. Нужен трюк.
Введём частичные суммы (префиксы):
Обрати внимание на — мы добавили «пустую» сумму искусственно. Зачем? Теперь у нас число ( до ). Клетки — снова остатки от деления на , их . Зайцев — Дирихле срабатывает: два префикса и (пусть ) дают одинаковый остаток. Значит, их разность делится на :
А эта разность — ровно сумма подряд идущих чисел от до . Что и требовалось доказать.
Главный приём здесь — искусственно добавленный . Без него зайцев ровно , и принцип не запускается. С ним — , и всё взлетает. Вот эта способность «дорисовать лишний объект, чтобы перевес появился» и есть признак того, что ты вышел на олимпиадный уровень владения приёмом.
Где это встречается и что делать дальше
Дирихле — рабочая лошадь олимпиад: школьный и муниципальный этап ВсОШ, перечневые олимпиады, теория чисел, комбинаторная геометрия. Маркеры «докажите, что найдётся / хотя бы два / как минимум» будешь теперь видеть издалека. На ЕГЭ и ОГЭ он напрямую почти не спрашивается, но мышление «категории против объектов» здорово помогает в задачах на делимость и в олимпиадной части.
Запомни три навыка, которые мы прокачали:
- Найти клетки — иногда они в условии (цвета), иногда это остатки от деления, иногда их надо нарисовать самому (разрезать квадрат).
- Посчитать перевес — для простой формы или для оценки «сколько минимум».
- Добавить лишний объект (как ), когда зайцев чуть-чуть не хватает.
Дальше — только практика: приём ставится на 5–10 решённых задачах, не больше. В банке Ботан Бро есть олимпиадные задачи на Дирихле с разбором — порешай их подряд, и приём ляжет на автомате. А если где-то застрянешь — Бро рядом, разберёмся вместе.