Принцип включения-исключения применяется в комбинаторике, когда нужно вычислить количество элементов, у которых есть хотя бы одно из нескольких свойств. ru.hexlet.io При этом элементы, у которых есть более чем одно свойство, не учитываются дважды. ru.hexlet.io
Словесная формулировка принципа включений-исключений: www.e-maxx-ru.1gb.ru чтобы посчитать размер объединения нескольких множеств, надо просуммировать размеры этих множеств по отдельности, затем вычесть размеры всех попарных пересечений этих множеств, прибавить обратно размеры пересечений всевозможных троек множеств, вычесть размеры пересечений четвёрок, и так далее, вплоть до пересечения всех множеств. www.e-maxx-ru.1gb.ru
Некоторые примеры применения принципа включений-исключений в комбинаторике:
- Подсчёт количества чисел в заданном отрезке, кратных хотя бы одному из заданных чисел. www.e-maxx-ru.1gb.ru Для этого нужно перебрать поднабор чисел, найти их наименьшее общее кратное и прибавить или вычесть из ответа очередное значение. www.e-maxx-ru.1gb.ru
- Подсчёт количества строк, удовлетворяющих заданному числу паттернов. www.e-maxx-ru.1gb.ru Дано несколько паттернов — строк одинаковой длины, состоящих только из букв и знаков вопроса. www.e-maxx-ru.1gb.ru Также дано число. www.e-maxx-ru.1gb.ru Нужно посчитать количество строк, удовлетворяющих ровно заданному числу паттернов либо, в другой постановке, как минимум заданному числу паттернов. www.e-maxx-ru.1gb.ru
- Подсчёт числа способов дойти от одной клетки до другой, избежав всех препятствий. www.e-maxx-ru.1gb.ru Для этого можно перебрать подмножество тех препятствий, на которые точно наступишь, посчитать число способов сделать это и затем прибавить или отнять это число от ответа. www.e-maxx-ru.1gb.ru