Это в лекции 3. |
Индукция и комбинаторика
Элементы комбинаторики
Комбинаторика - раздел математики, изучающий вопросы о том, сколько различных комбинаций, подчиненных тем или иным условиям, можно составить из заданных объектов.
Размещения, перестановки, сочетания
Многие классические задачи комбинаторики являются задачами определения числа способов размещения некоторых объектов в каком-то количестве "ящиков" так, чтобы выполнялись определенные ограничения. Более формально такие задачи можно сформулировать следующим образом. Даны множества X, Y, причем |X|=n, |Y|=m. Сколько существует функций f: X -> Y, удовлетворяющих заданным ограничениям? Здесь элементы X - объекты, а элементы Y - ящики, а каждая функция f: X -> Y определяет для каждого объекта в какой ящик он помещается.
Рассмотрим вначале простой случай, когда на размещения не накладывается никаких ограничений.
Теорема 2.1. Если |X| = n, |Y|=m, то число всех функций f: X -> Y равно mn.
Доказательство проведем индукцией по n.
Пусть X={x1,... , xn}, Y={y1,... , ym}. Тогда каждая функция f: X -> Y однозначно определяется последовательностью своих значений f(x1), ... , f(xn). Пусть Fm(n) - число всех таких функций (последовательностей).
Базис индукции. Ясно, что при n=1 имеется ровно m различных функций: fi(x1)=yi, i=1,..., m, т.е. Fm(1)=m.
Шаг индукции. Предположим, что при n=k выполнено равенство Fm(k)=mk. Докажем, что тогда Fm(k+1)=mk+1.
Действительно, при n=k+1 каждая функция f: X -> Y - это последовательность f(x1), ... ,f(xk), f(x{k+1}). Положив X'={x1,... , xk}, ее можно рассматривать как функцию f':X' -> Y, заданную последовательностью f(x1), ... , f(xk), которая дополнена одним новым значением f(x{k+1}). Так как |X'|=k, то по предположению число таких различных функций f':X' -> Y равно Fm(k)=mk. Каждая из них имеет ровно m возможных расширений f(x{k+1}) = yi, i=1,... , m. Поэтому Fm(k+1)= Fm(k) x m =mk+1.
Следствие 2.1.1. Если |X|=n, то число всех подмножеств множества X равно |2X|= 2n.
Доказательство. Пусть X={x1,... , xn}. Сопоставим каждому подмножеству функцию fX' : X -> {0,1} следующим образом:
(i=1, ... , n).
Ясно, что это сопоставление взаимно однозначное. Действительно, если , то имеется элемент и тогда . Таким образом, число всех подмножеств X равно числу всех функций f : X -> {0,1}. По теореме 2.1 это число равно 2n.
Следствие 2.1.2. Число всех слов длины n в алфавите A={a1, ..., am} из m символов равно mn.
Найдем теперь число размещений, для которых каждый ящик содержит не более одного объекта. Такие размещения соответствуют 1-1- функциям. Обозначим через Amn число всех 1-1-функций из n -элементного множетства в m -элементное множество. Это число называется числом размещений из m по n.
Теорема 2.2. Если |X| = n, |Y|=m, то число всех 1-1-функций f: X -> Y равно
Доказательство проведем индукцией по n (для каждого фиксированного m ).
Базис индукции. Поскольку при n=1 каждая функция является 1-1-функцией, то, как и в предыдущей теореме, число таких функций равно m, т.е. Am1=m.
Шаг индукции. Предположим, что при n=k выполнено равенство Amk=m(m-1)... (m-k+1). Докажем, что тогда Amk+1=m(m-1)... (m-k+1)(m-k).
Действительно, как и в предыдущей теореме, каждая 1-1-функция f: X -> Y является расширением некоторой 1-1-функции f':X' -> Y значением f(x{k+1}) ( напомним, что X'= X \ {x k+1} ). При этом в качестве этого значения можно взять любой элемент Y, не являющийся значением f', т.е. любой элемент из множества Y \ {f(x1),... , f(xk)}. При k < m таких элементов (m-k). Тогда каждую 1-1-функцию f':X' -> Y можно расширить (m-k) способами и, следовательно, Amk+1 =Amk (m-k). При k >= m 1-1-функций f: X -> Y не существует (почему?) и Amk+1=0, но в этом случае доказываемая формула также справедлива, поскольку один из сомножителей в ней равен 0.
В качестве простого следствия теоремы 2.2 получаем формулу для числа перестановок.
Теорема 2.3. Если |X| = n , то число всех перестановок f: X -> X равно n!
Число всех k -элементных подмножеств n -элементного множества обозначим через Cnk (часто используется также обозначение ).
Это число называется числом сочетаний из n по k.
Теорема 2.4. При n >= k >= 0
Доказательство. При n=k=0 у пустого множества имеется одно (пустое) подмножество. Поэтому (напомним, что по обычному соглашению 0!=1 ).
Пусть |Y| = n>= 1. Каждая 1-1-функция f: {1,... ,k} -> Y определяет k -элементное подмножество . При этом одно и тоже такое подмножество получается при любой перестановке элементов . Всего таких перестановок k! (по теореме 2.3), а 1-1-функций f: {1,... ,k} -> Y - Ank. Отсюда, используя теорему 2.2, получаем, что
Непосредственным следствием этой теоремы является свойство "симметричности" сочетаний: Cnk =Cnn-k, а также рекурентная формула Cnk = Cn-1k + Cn-1k-1, позволяющая организовать их эффективное вычисление путем последовательного получения элементов треугольника Паскаля:
В n -ой строке этого треугольника стоят числа Cn0, Cn1, ..., Cnk, ... , Cnn и каждое из них является суммой двух стоящих над ним чисел предыдущей строки. Эти числа называются биномиальными коэффициентами, так как входят в формулу бинома Ньютона, выражающую n -ую степень бинома x+y :
Справедливость этой формулы следует из того, что коэффициент при xkyn-k равен числу способов, которыми из n сомножителей (x+y)(x+y)... (x+y) можно выбрать k сомножителей.
Укажем несколько простых следствий этой формулы. Положив в ней x=1, y=1 , получаем:
Так как сумма слева определяет число всех подмножеств n -элементного множества, то это еще одно доказательство следствия 2.1.1.
При x=1, y=-1 бином Ньютона дает равенство числа подмножеств четной и нечетной мощности: