Правило сложения
Базовые примеры
Во время решения комбинаторных задач не раз и не два будет вставать вопрос: как определить количество способов взять один объект из нескольких групп объектов? Отличной иллюстрацией такого вопроса служит следующий пример:
Настя собирается в театр и пытается выбрать подходящее платье. У нее есть 3 черных и 2 белых платья. Сколько у нее вариантов выбрать одно платье для театра?
В этой задаче платья (объекты) разбиты на две группы (класса): черные и белые. Для выяснения общего количества вариантов мы просто складываем количество объектов в этих двух классах. Разделение на классы и сложение работает не только для двух, а вообще для любого количества групп или классов.
На столе лежит 5 яблок, 3 апельсина и 8 бананов.
Сколько существует способов выбрать хоть какой-то из этих фруктов?
Группируй и складывай
В базовых примерах нам уже дали разбитые на группы объекты и оставалось только их сложить. Сейчас рассмотрим более сложный пример, в котором группы придется выделять нам самим.
Имеется канделябр с четырьмя разными свечами. Нам нужно осветить комнату, то есть зажечь хотя-бы одну свечу (можно и больше). Сколько есть способов осветить команту?
Разделим все способы осветить комнату на группы по количеству зажженных свечей:
В группе будут все способы осветить комнату одной зажженной свечой. Таких способа всего 4 — выбрать одну из четырех свечей и зажечь ее.
В группе все способы осветить команту двумя зажженными свечами. Количество способов зажечь две свечи из четырех можно найти прямым перебором. Всего их 6.
В группе все способы осветить команту тремя зажжеными свечами. Так же прямым перебором находим 4 варианта это сделать.
Наконец, в группе все способы осветить комнату всеми четырьмя зажжеными свечами. Такой способ только 1 — зажечь все свечи.
Итак, мы все способы осветить комнату разбили на группы по количеству зажженных свечей. По отдельности нашли количество способов в каждой группе. Чтобы найти ответ на задачу, осталось только сложить способы во всех группах:
Всего 15 способов осветить команту при помощи канделябра с четырьмя свечами!
Правило сложения
Мы рассмотрели достаточно примеров, чтобы обнаружить закономерность. Отвлекаясь от смысла, мы все возможные варианты разбиваем удобным нам образом на группы. А потом просто складываем количество способов в этих группах. Так и получаем искомое количество способов!
Принцип «группируй и складывай» лежит в основе всей комбинаторики. Он простой, понятный и встречается настолько часто, что математики дали ему отдельное название:
Если объект из группы A можно выбрать a способами, а объект из группы B можно выбрать b способами, то выбрать хоть какой-то объект из этих групп можно способами.
Другими словами, выбор «A или B» можно сделать способами.
Правило сложения (или правило суммы) позволяет разбивать сложную задачу на несколько более легких подзадач. Получив ответы на эти более легкие подзадачи их останется только сложить вместе и автоматом получить ответ на исходную сложную задачу!
Так как комбинаторика тесно связана с теорией множеств, то группы из правила сложения очень часто называют классами. В рамках данного учебника никакой разницы нет. Используйте то название, которое вам больше нравится.
Проблема дубликатов
Во всех уже рассмотренных примерах классы (группы) содержат уникальные элементы. То есть они не пересекаются — в них нет объектов, которые принадлежат сразу нескольким классам:
Не может быть одновременно черного и белого платья.
Не может яблоко быть апельсином или бананом.
Не может способ осветить комнату 2-мя свечами равняться способу осветить ее 3-мя свечами.
Но классы не всегда бывают такими удобными. Поэтому надо следить, чтобы они не пересекались друг с другом. Если же забыть сделать проверку, то может получить обидную ошибку:
В магазине детских игрушек есть 6 кубиков, 3 из которых синего цвета и 5 шариков синего цвета. Матвей хочет себе либо кубик, либо игрушку любой формы, но обязательно синюю. Сколькими способами его мама может совершить покупку?
Нас интересуют два класса объектов: «Кубики» и «Синие игрушки». Посчитаем, сколько объектов лежат в каждой из этих групп. Кубик можно выбрать 6 способами. Синюю игрушку можно выбрать 8 способами (3 кубика и 5 шариков). Выходит, выбор «Кубик или синяя игрушка» можно сделать 6 + 8 = 14 способами! Элементарно, Ватсон!
Но это неправильный ответ. Дело в том, что группы «Кубик» и «Синяя игрушка» пересекаются друг с другом, потому что в магазине есть 3 игрушки, которые одновременно являются и кубиком, и синей игрушкой. Три этих кубика есть в группе «Кубик», но эти же три кубика есть и в группе «Синяя игрушка». Когда мы сложили эти две группы, мы лишний раз учли эти три кубика.
Для получения правильного ответа достаточно вычесть эти три кубика, которые мы учли лишний раз: 6 + 8 - 3 = 11. Всего 11 способов выбрать «Кубик или синюю игрушку».
Вот еще один наглядный пример задачи, в которой возникает проблема дубликатов:
Сколькими способами из слова «стройка» можно выбрать согласную или букву, стоящую на четном месте?
В более сложных задачах вам часто придется самостоятельно выделять классы для правила сложения и следить за тем, чтобы они не пересекались! Не забывайте выполнять проверку на пересечения!
Применяя правило суммы всегда проверяйте классы на пересечение! В элементарных задачах очень просто заметить объекты, принадлежащие сразу к нескольким классам, но в более сложных глаз может замылиться!
Цепочка действий
Не всегда правило сложения можно применить так легко и просто, как в уже рассмотренных примерах. Иногда нужно догадаться, как его надо использовать. Если все было бы тривиально, математика была бы слишком скучной, не так ли?
Вот пример такой «нестандартной» задачи:
Турист находится в городе A. Попасть он хочет в город E. Двигаться он может только по стрелкам. Не используя прямого перебора найдите, сколько всего есть разных маршрутов из A в E.
Такой необычный способ использования правила сложения позволяет некоторые многоступенчатые задачи решать постепенно — используя для рассчета очередного шага сумму результатов предыдущих шагов.
Этот метод можно применять для решения задач о путешествиях, командах и инструкциях для роботов и любых других, в которых есть четкая последовательность идущих друг за другом действий.