🎓 Мои уроки
← Все уроки: Олимпиадная математика 📄 PDF

Урок 3. Принцип Дирихле (принцип ящиков)

Математика

🎯 Что ты узнаешь

📖 Разбираемся в теме

Спорим на мороженое? В Москве точно живут два человека с абсолютно одинаковым числом волос на голове. Не «примерно одинаковым», а волосок в волосок. Я не считал ничьи волосы и не знаю этих людей в лицо, но я уверен на все сто. Как такое можно знать заранее? Есть один смешной до простоты принцип, который позволяет доказывать существование вещей, не находя их. Знакомься: принцип Дирихле.

Главная идея

Представь: у тебя 3 клетки (ящика) и 4 голубя. Если все голуби сядут по клеткам, то хотя бы в одной клетке окажется не меньше двух голубей. Почему? Если бы в каждой клетке сидело не больше одного голубя, всего голубей было бы максимум 3. А их 4. Противоречие!

Это и есть принцип Дирихле (его ещё называют «принцип ящиков» или «принцип голубей и клеток»):

📌 Запомни: Если предметов больше, чем ящиков, то хотя бы в одном ящике лежит не меньше двух предметов.

Точная формулировка: если в ящиков разложили больше предметов, то найдётся ящик, где хотя бы 2 предмета.

Звучит как очевидность, и это правда очевидность. Но фокус в том, что в реальных задачах «ящики» и «предметы» спрятаны, и их надо разглядеть. В этом и весь талант.

3 ящика 4 голубя здесь двое!
Рис. 1. Голубей 4, ящиков 3: куда-то сели двое сразу

Как это доказывают (от противного)

Принцип Дирихле всегда доказывается от противного, и важно понимать этот ход. Предположим обратное: пусть в КАЖДОМ ящике не больше одного предмета. Тогда всего предметов не больше, чем ящиков. Но по условию предметов больше, чем ящиков. Противоречие! Значит, наше предположение неверно, и какой-то ящик переполнен.

Запомни схему рассуждения, она пригодится во всех задачах:

  1. Назвать ящики (групп должно быть мало).
  2. Назвать предметы (их должно быть много, больше, чем ящиков).
  3. Сказать: предметов больше ящиков, значит, два предмета попали в один ящик.
  4. Объяснить, что «два в одном ящике» означает то, что требуется в задаче.

💡 Лайфхак: 90% сложности любой задачи на Дирихле — это придумать, что считать ящиками, а что предметами. Само правило срабатывает за одну строчку. Поэтому, увидев слова «обязательно найдутся», «хотя бы двое», «гарантированно», сразу спрашивай себя: «А что тут ящики? Чего тут много?»

Где искать «ящики»: копилка приёмов

Придумывание ящиков кажется магией, но на самом деле у неё есть несколько повторяющихся сюжетов. Держи под рукой этот список. Почти любая олимпиадная задача на Дирихле прячет ящики в одном из этих мест:

🤔 Как понять, чего должно быть мало? Ящиков должно быть строго меньше, чем предметов. Значит, ящики — это «то, чего в задаче конечное, заранее известное количество» (12 месяцев, 7 цветов, 6 остатков), а предметы — «то, чего в задаче как бы много или больше» (люди, вытащенные носки, выбранные числа). Если запутался, прикинь два числа и посмотри, какое больше. Меньшее число — ящики.

Усиленный (обобщённый) принцип Дирихле

А что, если предметов гораздо больше, чем ящиков? Тогда в каком-то ящике будет не просто 2, а ещё больше.

📌 Запомни: Если в ящиков положили больше, чем предметов, то найдётся ящик, где не меньше предмета.

Проверь логику тем же «от противного»: если бы в каждом из ящиков было максимум предметов, всего было бы максимум . А у нас больше. Значит, где-то набралось хотя бы .

Например: 25 учеников, 3 варианта оценки за тест (3, 4, 5). Ящиков 3. Так как , то найдётся оценка, которую получили хотя бы 9 человек (, ).

Есть удобный способ прикинуть «сколько же точно наберётся». Если раскладываешь предметов по ящикам, то в самом полном ящике всегда не меньше, чем делить на и округлить вверх. Например, писем в ящиков: , округляем вверх, значит, в каком-то ящике не меньше 12 писем.

⚠️ Осторожно с округлением! Округлять надо именно вверх, а не «как обычно». : если бы везде было по 11, вышло бы всего , одно письмо не поместилось. Значит, где-то точно 12. Никогда не округляй такие оценки вниз — это самая частая ошибка в задачах на усиленный Дирихле.

Геометрический принцип Дирихле

Иногда «ящиков» в задаче не видно: есть просто фигура, внутри которой разбросаны точки. Как тут применить Дирихле? Хитрость в том, что ящики можно сделать самим: разрезать фигуру на маленькие кусочки. Каждый кусочек станет ящиком, а точки — «зайцами».

📌 Запомни: Если фигуру разрезали на частей и поставили внутри больше точек, то в какую-то одну часть попадут хотя бы две точки.

Зачем это нужно? Затем, что две точки, попавшие в один маленький кусочек, не могут быть далеко друг от друга: их расстояние не больше размера кусочка. Так «в одном ящике две точки» превращается в «какие-то две точки близко».

Разберём на классической задаче.

В квадрате со стороной отметили точек. Докажи, что какие-то две из них находятся на расстоянии не больше .

Рассуждаем по шагам:

  1. Разрежем большой квадрат на 4 маленьких квадратика со стороной (просто поделим пополам по вертикали и по горизонтали) — это наши 4 ящика.
  2. Точек — 5, ящиков — 4. Значит, по принципу Дирихле в какой-то квадратик попадут хотя бы две точки.
  3. Насколько далеко эти две точки могут разойтись внутри маленького квадратика? Самое большое расстояние между двумя точками в квадрате — это его диагональ (дальше всего отстоят два противоположных угла).

Для квадрата со стороной диагональ по теореме Пифагора равна . У нашего квадратика , поэтому диагональ . Значит, две точки в одном квадратике не могут отойти дальше , что и требовалось доказать.

сторона a диагональ = a√2
Рис. 2. Дальше диагонали две точки в квадрате не разойдутся

Главная хитрость таких задач — правильно нарезать фигуру: кусочков должно быть на один меньше, чем точек (чтобы сработал Дирихле), и при этом каждый кусочек — достаточно маленьким, чтобы поймать нужную близость.

Принцип Дирихле и делимость: магия остатков

Это самое красивое применение. Вспомни: когда мы делим целое число на , остаток бывает только один из набора , всего ровно вариантов. Вот эти остатков и есть готовые ящики!

Ключевая мысль, из-за которой всё работает:

📌 Следствие о делимости: Разность двух чисел, дающих одинаковый остаток при делении на , всегда делится на без остатка.

Почему это так? Докажем математически. Пусть числа и при делении на дают один и тот же остаток . По определению деления с остатком это значит, что их можно записать так:

где и — целые числа (сколько раз «уместилось» в числе), а — их общий остаток. Вычтем одно из другого:

Справа стоит , умноженное на целое число , а значит, разность делится на . Что и требовалось доказать. (Верно и наоборот: если разность делится на , то остатки обязаны совпасть.)

Отсюда рабочий рецепт для задач вида «докажи, что найдутся два числа, разность которых делится на »:

  1. Ящики — это возможных остатков при делении на .
  2. Предметы — выбранные числа. Каждое кладём в ящик по его остатку.
  3. Если чисел больше , два попадут в один ящик: у них одинаковый остаток.
  4. Значит, их разность делится на . Готово!

💡 Лайфхак: Слова «разность делится на », «сумма делится на », «два числа сравнимы» — почти всегда сигнал: ящики это остатки при делении на . Их ровно штук.

Аналогия из жизни

Если в школе учатся 367 детей, то обязательно есть двое с одинаковым днём рождения. Ящиков — 366 (все возможные даты, включая 29 февраля). Детей — 367, это больше. Значит, две даты совпадут. Заметь: мы не знаем, КТО эти двое и КАКОЙ это день, но точно знаем, что они есть. Принцип Дирихле почти всегда доказывает «существование», не указывая пальцем.

🤔 А знаешь ли ты? Тот самый спор про волосы из начала урока решается этим же приёмом. У человека на голове максимум около 150 000 волос, значит, «ящиков» (вариантов числа волос) меньше миллиона. А жителей крупного города — миллионы. Предметов больше ящиков: двое с одинаковым числом волос обязаны существовать. Принцип назван в честь немецкого математика Петера Густава Лежёна Дирихле, жившего в XIX веке. По-немецки его называли «Schubfachprinzip» — «принцип выдвижных ящиков», как ящики в комоде.

✍️ Разбор примеров

Пример 1. В классе 25 учеников. Докажи, что хотя бы трое из них родились в один и тот же месяц.

⏱ Попробуй сам прямо сейчас: чего в этой задаче ровно 12 штук? Это и будут ящики. Потом читай дальше.

Как рассуждаем. Ящики — это 12 месяцев, предметы — 25 учеников (каждого кладём в тот месяц, в котором он родился). Здесь работает усиленный принцип Дирихле. Пойдём от противного: предположим, что в каждом месяце родилось не больше двух учеников. Тогда всего учеников было бы не больше . Но в классе их 25, а — противоречие! Значит, предположение неверно, и в какой-то месяц попало не меньше трёх учеников.

Короче: по усиленному принципу в каком-то месяце будет не меньше учеников.

Ответ: доказано (12 месяцев, 25 учеников; если бы всюду было по ≤ 2, вышло бы ≤ 24 < 25).

Пример 2. В тёмной комнате в ящике лежат носки двух цветов — чёрные и белые — вперемешку. Сколько носков нужно вытащить вслепую, чтобы среди них точно нашлась пара одного цвета?

Как рассуждаем. Здесь ящики — это цвета (их 2: чёрный и белый), а предметы — вытащенные носки. Чтобы гарантированно получить два носка одного цвета, нам нужно, чтобы предметов было больше, чем ящиков, то есть больше 2. Значит, 3 носка хватит: при трёх носках и двух цветах какие-то два обязательно одного цвета.

Проверим, что двух мало: можно вытащить один чёрный и один белый. Пары нет. А три уже гарантируют.

Ответ: 3 носка.

💡 Правило хитрого гардероба: Чтобы гарантированно набрать пару при цветах, надо вытащить носок. Проверь: 2 цвета → 3 носка (как выше), 4 цвета → 5 носков. Логика всегда одна: «один плохой случай на каждый ящик, плюс ещё один сверху, чтобы сломать невезение».

Пример 3. В большом городе живёт больше 1 000 000 человек. Известно, что у любого человека на голове не больше 500 000 волос. Докажи, что есть двое жителей с одинаковым числом волос.

Как рассуждаем. Ящики — возможные количества волос: от 0 до 500 000. Сколько таких чисел? От 0 до 500 000 включительно — это 500 001 значение. Предметы — жители, их больше 1 000 000.

Жителей (>1 000 000) намного больше, чем ящиков (500 001). По обычному принципу Дирихле уже найдутся двое с одинаковым числом волос.

(Бонус: тут даже работает усиленный принцип. Жителей больше, чем ? Не обязательно, но в любом случае двое точно найдутся.)

⚠️ Не забудь про ноль! Возможных чисел волос не 500 000, а 500 001, потому что лысина (0 волос) тоже вариант. Когда считаешь ящики-числа «от 0 до », их всегда , а не . Промах на единицу здесь ничего не портит (жителей всё равно больше), но в других задачах такая ошибка может всё сломать.

Ответ: доказано (ящиков-«чисел волос» 500 001, жителей больше миллиона).

Пример 4. Из чисел 1, 2, 3, …, 10 выбрали любые 6 штук. Докажи, что среди выбранных найдутся два числа, дающие в сумме 11.

Как рассуждаем. Снова ящиков не видно: надо их изобрести. Раз речь про сумму 11, разобьём все числа от 1 до 10 на пары, дающие в сумме 11: (1, 10), (2, 9), (3, 8), (4, 7), (5, 6).

Получилось 5 пар — это наши 5 ящиков. Каждое из чисел 1…10 лежит ровно в одном ящике. Мы выбрали 6 чисел. Раскладываем эти 6 выбранных чисел по 5 ящикам-парам. Предметов (6) больше, чем ящиков (5), значит, в какой-то ящик попали оба числа из пары. А оба числа пары дают в сумме как раз 11.

Ответ: доказано (5 пар с суммой 11, выбрали 6 чисел, и какая-то пара набралась целиком).

Пример 5. Из чисел 1, 2, 3, …, 100 выбрали любые 7 разных. Докажи, что среди них найдутся два числа, разность которых делится на 6.

⏱ Попробуй сам: на что делят, чтобы получить ящики? На 6. А сколько бывает остатков при делении на 6?

Как рассуждаем. Это классическая задача «на остатки» — самый красивый вид Дирихле. При делении на 6 остаток бывает только один из шести: . Вот наши 6 ящиков. Каждое выбранное число кладём в ящик по его остатку от деления на 6 (например, число 20 даёт остаток 2 и идёт в ящик «2»; число 27 даёт остаток 3 и идёт в ящик «3»).

Чисел выбрали 7, ящиков-остатков 6. Предметов больше: по принципу Дирихле два числа попали в один ящик, то есть дали одинаковый остаток. А два числа с одинаковым остатком отличаются на число, кратное 6: их разность делится на 6. Что и требовалось.

Маленькая проверка на пальцах: пусть выбрали 8 и 26. Остатки: (остаток 2), (остаток 2) — совпали. Разность — делится на 6.

Ответ: доказано (6 остатков при делении на 6, чисел 7 > 6, два дают одинаковый остаток → их разность кратна 6).

Пример 6. В коробке лежит по 100 шаров четырёх цветов. Не глядя, вытащили 25 шаров. Докажи, что среди них не меньше 7 шаров одного цвета.

Как рассуждаем. Тут пахнет усиленным принципом: нам мало «двух одинаковых», нужно сразу «не меньше 7». Ящиков 4 (цвета), предметов 25 (вытащенные шары).

Прикинем через деление: , округляем вверх, получаем 7. Значит, в каком-то цвете не меньше 7 шаров.

Проверим строго через усиленный принцип. Хотим показать: где-то , то есть , отсюда . Условие усиленного принципа: предметов должно быть больше . У нас 25, и правда . Значит, найдётся цвет с не менее чем 7 шарами.

А почему нельзя обойтись шестью? Если бы каждого цвета было максимум по 6, всего шаров было бы максимум . Один шар «лишний», и он делает какой-то цвет седьмым.

Ответ: доказано (, значит, где-то не меньше 7 шаров одного цвета).

Пример 7. В компании из 6 человек докажи, что обязательно найдутся либо трое попарно знакомых, либо трое попарно незнакомых.

Как рассуждаем. Это посложнее, но идея с Дирихле тут стартовая. Возьмём одного человека, назовём его Аня. У Ани есть 5 остальных, и с каждым из них она либо знакома, либо нет. Раскладываем этих 5 человек по 2 ящикам: «знакомые с Аней» и «незнакомые с Аней».

5 человек, 2 ящика: по принципу Дирихле в каком-то ящике не меньше 3 человек (ведь , усиленный принцип даёт ). Пусть для определённости трое знакомы с Аней (если бы трое были незнакомы, рассуждение зеркальное). Назовём их Б, В, Г.

Теперь смотрим на эту тройку Б, В, Г.

В любом случае нужная тройка нашлась.

🤔 А знаешь ли ты? Этот пример — кусочек целой науки под названием «теория Рамсея». Её главная мысль: в любом достаточно большом беспорядке обязательно прячется порядок. Сколько людей ни собери в компанию, в ней неизбежно образуется аккуратная тройка знакомых или незнакомых: хаоса «без всякой структуры» просто не существует.

Ответ: доказано (выделяем 3 человек одного «типа отношений» с одним, и среди них замыкается нужная тройка).

💡 Запомни главное

Главная работа — придумать ящики (их мало) и предметы (их больше, чем ящиков). Дальше принцип Дирихле делает вывод за тебя.

📝 Домашнее задание

  1. В коробке лежат карандаши 4 цветов. Сколько карандашей нужно вытащить вслепую, чтобы среди них наверняка оказалось два одного цвета?
  2. В классе 25 учеников. Докажи, что хотя бы трое из них родились в один месяц.
  3. В коробке лежат носки трёх цветов. Сколько носков нужно вытащить вслепую, чтобы гарантированно получить пару одного цвета? А чтобы гарантированно получить пару чёрного цвета, если чёрных всего 5, а остальных по 20?
  4. Выбрали 9 разных целых чисел. Докажи, что среди них найдутся два, разность которых делится на 8.
  5. В равностороннем треугольнике со стороной 2 отметили 5 точек. Докажи, что какие-то две из них на расстоянии не больше 1.
  6. На шахматной доске 8×8 расставили 9 ладей. Докажи, что какие-то две из них стоят в одной строке (горизонтали).
  7. Из чисел 1, 2, …, 100 выбрали 51 число. Докажи, что среди них найдутся два соседних (отличающихся на 1).
  8. ⭐ На вечеринке собрались n человек (n ≥ 2), некоторые пожимали друг другу руки. Докажи, что обязательно найдутся двое, сделавшие одинаковое число рукопожатий. (Подсказка: сколько рукопожатий может сделать один человек — от 0 до скольких? Почему числа 0 и n−1 не могут встретиться одновременно?)