|
Лекция 1_04: Комбинаторика. Размещения и сочетания
Предмет лекции
Перестановки (permutations) были первым классическим объектом
комбинаторики. Сейчас мы рассмотрим два остальных — размещения
(allocations) и сочетания (combinations).
Важность этих двух определений различна. Сочетания используются повсеместно.
Размещения же нужны почти исключительно для того, чтобы сочетания было удобно
определять, они служат удобным переходом от перестановок к сочетаниям.
|
Размещения
Пусть задано множество из n элементов.
Упорядоченный набор, содержащий m из этих элементов
называется размещением из n
элементов по m .
Обозначим множество размещений из n элементов по
m через
A nm ,
а его мощность через
Anm .
И опять те же три вопроса: чему равно
Anm ,
как перебрать элементы
A nm ,
как их перенумеровать.
Легко видеть, что
Anm
= n(n−1). . .(n−m+1) =
n! / (n−m)!
имеем n возможностей выбора первого элемента,
n−1 возможностей выбора второго и т.д.
Получаем m сомножителей, начинающихся с n
и уменьшающихся каждый раз на 1 .
Такой неполный факториал, который обычно делают полным, дописывая необходимые множители
в числителе и знаменателе.
|
Пример размещений
Перечислим размещения из 5 элементов по 3. Их число должно быть равно
5·4·3 = 60 . Имеем
abc bac cab dab eab
abd bad cad dac eac
abe bae cae dae ead
acb bca cba dba eba
acd bcd cbd dbc ebc
ace bce cbe dbe ebd
adb bda cda dca eca
adc bdc cdb dcb ecb
ade bde cde dce ecd
aeb bea cea dea eda
aec bec ceb deb edb
aed bed ced dec edc
Перечисляемые тройки выписаны по столбцам. Как и раньше, мы стараемся менять прежде всего
последний элемент, если это невозможно то меняем предыдущмй и снова перебираем все
возможности последнего, и т. д.
Если сгруппировать эти размещения в группы с одинаковым составом, мы получим 10 строк
по 6 элементов (это скоро понадобится)
abc acb bac bca cab cba
abd adb bad bda dab dba
abe aeb bae bea eab eba
acd adc cad cda dac dca
ace aec cae cea eac eca
ade aed dae dea ead eda
bcd bdc cbd cdb dbc dcb
bce bec cbe ceb ebc ecb
bde bed dbe deb ebd edb
cde ced dce dec ecd edc
|
Нумерация размещений
Для нумерования размещений, подобно случаю перестановок, мы отобразим множество
A nm
взаимнооднозначно (построим биекцию) в другое множество
T nm ,
на котором ввести нумерацию будет гораздо проще, а затем для любого элемента
α О
A nm
в качестве его номера возьмем номер его образа в
T nm .
Множество T nm
— это прямое произведение нескольких числовых отрезков
T nm
= 0:(n−1) ´ 0:(n−2)
´ …
´ 0:(n−m+1) .
Таким образом, каждый элемент
T nm —
это набор неотрицательных чисел i1 ,
i2 , …, im−1 ,
im , причем
ik £
n−k .
Обратите внимание, насколько малы отклонения этого текста от текста для перестановок.
|
Сочетания
Пусть задано множество из n элементов.
Неупорядоченный набор, состоящий из m
этих элементов называется сочетанием
из n элементов по m .
Определение отличается от определения для размещений всего одним словом:
неупорядоченный .
Обозначим множество сочетаний из n элементов по
m через
C nm ,
а его мощность через
Cnm .
И еще раз три вопроса: чему равно
Cnm ,
как перебрать элементы
C nm ,
как их перенумеровать.
Легко видеть связь между
Cnm и
Anm :
Cnm =
Anm / m! = n! /
(m!(n−m)!)
Вспомним вторую таблицу в примере: в каждой строке m!
элементов-размещений, и каждая строка представляет одно сочетание, записанное во всех
возможных упорядочениях.
|
Перебор сочетаний
Лексикографический перебор сочетаний можно выполнять по-разному.
Один путь — устроить что-то вроде переборов 0-1-наборов или преребора перестановок
в лексикографическом порядке: взять начальный набор индексов
от 0 до m−1
и на каждом шаге стремиться увеличивать самый правый из последних индексов.
Оставим разработку деталей такого подхода слушателям.
А подробнее рассмотрим другой способ, с другой формой представления сочетаний.
Каждое сочетание — это подмножество мощности m
в множестве
из n элементов. Если вспомнить о представлении
подмножества характеристическим вектором, мы придем к тому, что сочетание задается
набором, в котором ровно m единиц и
n−m нулей.
Значит нужно научиться перебирать такие наборы.
В лексикографическом порядке!
Самый младший набор — тот, в котором идут сначала все нули, а потом все единицы.
Самое выгодное увеличение набора — это сдвиг на одну позицию вправо
самого правого из нулей, которые еще можно сдвигать, и «подтаскивание» к нему
всех находящихся справа нулей.
Полезен пример.
Пусть n = 7 и m = 5 .
00 11111 1010 111 110 1110
010 1111 10110 11 11100 11
0110 111 101110 1 111010 1
01110 11 10 11110 1110 110
011110 1 1100 111 111100 1
0 111110 11010 11 11110 10
100 1111 110110 1 1111100
Красным выделены нули, сдвигаемые на позицию вправо.
Опишите сами этот алгоритм в терминах позиций, занятых единицами, и в терминах позиций,
занятых нулями.
|
Сочетания и пути
Итак, каждое сочетание из n по
m — это набор из
m единиц и
n−m нулей.
А, как говорилось раньше, каждый такой набор изображается путем на прямоугольной
решетки из точки (0, 0) в точку
(m, n−m) .
Так что число таких путей равно
Cnm .
Вместе с тем, все пути, приходящие в точку
(m, n−m) ,
идут через (m−1, n−m)
или через (m, n−m−1) .
Отсюда следует, что
Cnm
= Cn−1m−1 + Cn
−1m.
Эту формулу можно получить и непосредственным вычислением. Попробуйте.
Обычно формулу для Cnm
доопределяют для отрицательных m ,
полагая Cnm = 0 .
|
Нумерация сочетаний
Перенумеровать сочетания — это значит перенумеровать пути, о которых
говорилось только что. Будем нумеровать сначала пути, идущие через точку
(0, 1) ,
а затем пути, идущие через точку (1, 0) .
Пути из (0, 1) в
(m, n−m−1) нумеруются
как пути из (0, 0) в
(m, n−m−1) .
Пути из (1, 0) в
(m, n−m−1) нумеруются
как пути из (0, 0) в
(m−1, n−m)
с добавлением смещения нумерации на
Cn−1m−1
уже использованных номеров.
Пример.
#(0,1,1,0,1,1,1) = = #(1,1,0,1,1,1) =
= C55 + #(1,0,1,1,1) =
= C55 + C44 +
#(0,1,1,1) = 1 + 1 = 2.
|
Теорема о биноме Ньютона
Теорема (Sir Isaac Newton, 1643-1727).
При любом n справедлива формула
(a+b)n =
Σk ∈ 0:n Cnk
akbn−k .
Доказательство. По индукции. При n = 1 формула очевидна.
Предположим, что она доказана для n−1 и докажем ее для n .
Имеем
(a+b)n = (a+b)(a+b)n−1
= (a+b)(Σk ∈ 0:n−1 Cn−1k
akbn−1−k) =
= Σk ∈ 0:n−1 Cn−1k
ak+1bn−1−k
+ Σk ∈ 0:n−1 Cn−1k
akbn−k =
= Σk ∈ 0:n(Cn−1k−1
+ Cn−1k)
akbn−k
= Σk ∈ 0:n Cnk
akbn−k .
Эта формула так важна, что часто числа Cnk
называются биномиальными коэффициентами .
|
Треугольник Паскаля
Биномиальные коэффициенты очень красиво располагаются треугольником,
в котором каждое число (кроме первого) является суммой двух предшествующих.
Этот треугольник называется треугольником Паскаля (Blaise Pascal, 1623-1662).
14 11 33 27
29 41 15 26 32
1
14 11 33 27
29 41 15 26 1
54 1
14 11 33 27
29 41 15 1 32
2 87 1
14 11 33 27
29 41 1 26 3
954 3 83 1
14 11 33 27
29 1 15 4 732
6 987 4 15 1
14 11 33 27
1 41 5 26 10
54 10 983 5 77
1
14 11 33 1
29 6 15 15 32
20 87 15 15 6
91 1
14 11 1 27
7 41 21 26 35
54 35 83 21 77
7 16 1 44 23
35 37 38 12 20
29
Недавно стал, если не известен, то популярен, тот факт, что в треугольнике Паскаля суммы
элементов по линиям, проведенным наискось, образуют так называемые числа Фибоначчи
(Leonardo Pisano Fibonacci, 1170-1250):
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 и т. д.: каждое следующее равно
сумме двух предыдущих.
|
Бином Ньютона и комбинаторные формулы
1. При a = b =1 формула бинома превращается в формулу
2n = Σk ∈ 0:n
Cnk .
Интересна геометрическая трактовка этого факта: при проекции вершин n -мерного
куба на его диагональ, все вершины распределяются по группам, и количество вершин
в каждой равно некоему биномиальному коэффициенту.
2. При a = 1 , b = −1 формула бинома превращается в формулу
Cn0
− Cn1 + Cn2 − . . . = 0 .
Некоторые другие замечательные формулы можно получить, используя
формулу де Муавра (Abraham De Moivre, 1667-1754), французского ученого,
жившего в Лондоне (сбежавшего из Франции из-за религиозных преследований) и близко
знавшего Ньютона.
В одной книге я прочел такую историю: в конце жизни Муавр решил, что будет каждый день
спать на 10 минут дольше, и так и сделал. Когда он проспал целые сутки подряд, он умер,
поступив как настоящий математик.
|
Упражнения
- В обычном дверном кодовом замке 10 кнопок, из которых нужно нажать три.
Сколько возможно комбинаций кодирования этого замка?
- Как должна выглядеть аналог формулы бинома для
(a+b+c)n
и для (a+b+c+d)n ?
|
Экзаменационные вопросы
- Размещения. Их перебор и нумерация.
- Сочетания. Их перебор и нумерация.
- Свойства сочетаний. Бином Ньютона. Треугольник Паскаля.
- Комбинаторные формулы, получающиеся из формулы бинома Ньютона.
|
|