Очередной параграф. Потихоньку начинаю двигаться в сторону более интересного. Читать в pdf, помогать на GitHub.
Мы часто переставляем физические предметы местами: тасуем карты, перекладываем деньги в кошельке, сортируем данные в компьютере, ставим книги на полке, меняем жизненные приоритеты. Эти действия отражены в математическом понятии перестановок, которым мы и займёмся. Чтобы не было путаницы, мы более не будем придерживаться аксиоматического задания натуральных чисел (если не оговорено обратное), и в этом и последующих параграфах будем использовать обозначение для множества чисел от 1 до .
Определение. -элементной перестановкой называется биекция . Множество всех -элементных перестановок будем обозначать как .
Перестановку удобно записывать в виде строки. Например: . Эта запись означает, что на первой позиции оказался элемент, который раньше стоял на третьей позиции, вслед за ним идёт элемент, которые ранее стоял пятым и т.д.
Как и для любых функций, для перестановок можно рассматривать их композицию (в случае перестановок её часто называют умножением). Пусть, например, перестановка задана как выше и дана перестановка . В этом случае мы получаем . Для понимания этого примера важно помнить, что , то есть для того, чтобы получить позицию элемента, надо вначале применить перестановку , а затем только . Такой «обратный порядок» применения перестановок может показаться непривычным, но это стандартная форма записи функций, как мы узнали во второй главе. Вот так например можно получить позицию единицы в искомой перестановке:
Хотя для композиции функций принято обозначение , для умножения перестановок мы будем опускать символ и писать просто .
Из того, что перестановка — это функция, сразу следует ассоциативность перемножения перестановок (см. §2.4): для любых мы имеем тождество
Упражнение. Покажите, что умножение перестановок не коммутативно, то есть что в общем случае
Упражнение. Придумайте сами каких-нибудь перестановок и поэкспериментируйте с ними.
Теорема.
Доказательство.
Если вам здесь что-то стало не очень понятно или сложно — перечитайте §2.4, все обозначения и термины являются непосредственным отражением того, что обсуждалось когда мы говорили об обыкновенных функциях.
Подсчитаем мощность множества . На первую позицию мы можем поставить один из доступных нам элементов. На вторую позицию мы можем выбрать один из оставшихся элементов (итого способов расставить первые два элемента ). Затем на третью позицию мы можем поставить один из элементов (итого имеем расстановок). Продолжая так до конца, на последнюю -ю позицию мы ставим один оставшийся элемент. Для формулировки полученного результата полезно следующее обозначение:
Определение. Факториалом n! называется величина
Так же считаем, что .
Значение для 0! оправдано с той точки зрения, что на пустом множестве формально можно задать единственную функцию, которая так же будет биекцией (хоть она ничего и не отображает, формально она есть; см. аналогию с в §1).
Рассуждения, приведенные выше, теперь можно сформулировать таким образом:
Теорема. |Sn| = n!
Упражнение. Докажите, что при разложении на простые множители значения n!, множитель встретится ровно
раз, где как обычно через обозначается целая часть от деления на .
Помимо представления перестановки в виде строки, их удобно рассматривать в виде циклов. Рассмотрим опять перестановку . Мы видим, что при этой перестановке 1 переходит на позицию 5, 5 переходит на позицию 2, 2 на позицию 3, 3 на 4, которая переходит опять на позицию 1. Эти переходы записываются строкой чисел в круглых скобках: . Здесь за каждым числом следует число . Последнее значение переходит на позицию, обозначенную первым числом, что замыкает цикл.
Рассмотрим теперь перестановку . Здесь и , что даёт цикл . Сюда, однако, вошли не все элементы множества. Рассмотрим оставшиеся элементы: , , , что даёт цикл . Итого перестановка представляется в виде произведения двух циклов: .
Количество элементов в цикле мы будем называть его длиной. Если какой-то элемент отображается сам в себя (то есть ), то мы будем говорить, что перестановка имеет цикл длины 1 .
Упражнение. Пусть — некоторая перестановка и — некоторый цикл. Докажите, что
(Подсказка: рассмотрите как эта перестановка действует на элемент ).
Определение. Типом перестановки называется набор , где — количество циклов длины заданной перестановки.
Определение. Циклической перестановкой называется перестановка типа , то есть перестановка, состоящая из единственного цикла, сдвигающего все элементы.
Пример. Типом перестановки , используемой выше, будет , типом перестановки — . Тривиальная перестановка , которая оставляет все элементы на месте, имеет тип .
Упражнение. Покажите, что для любого типа всегда выполнено соотношение
Теорема. Существует
перестановок типа
Доказательство. В качестве рабочего примера будем считать, что мы ищем все перестановки типа множества .
Вначале выпишем произвольную строку чисел, являющуюся перестановкой (например, 18356724), способов сделать это n!. Расставим теперь в этой записи круглые скобки по очереди: вначале скобок с одним элементом внутри, затем скобок с двумя элементами внутри, потом с тремя элементами внутри и так далее. Для нашего примера получится запись
Таким образом мы получаем одну из возможных перестановок требуемого типа. Однако, не только первоначально выписанная перестановка даёт нам такое циклическое представление. Во-первых, если мы поменяем местами любые два цикла длины , то мы получим отличное представление той же самой перестановки. Например, мы можем поменять местами две перестановки длины 2:
Это ровно та же самая перестановка, но получающаяся из другой строки. Таким образом, поскольку у нас имеется циклов длины , нам необходимо поделить общее количество первоначальных перестановок на ck!.
Во-вторых, каждая из перестановок может быть циклически сдвинута на k элементов. Например, мы так могли бы сдвинуть наш пример, получив тот же результат:
Опять же это та же самая перестановка. Для каждого цикла длины мы имеем способов произвести такой сдвиг. По этой причине имеющееся у нас количество искомых перестановок надо поделить на для каждой длины цикла .
Следствие. Существует (n-1)! циклических перестановок множества .
Доказательство. В качестве упражнения.
Упражнение. Порядком перестановки называется такое число , что (то есть под подразумевается -кратное применение перестановки ). Докажите, что для перестановки типа выполняется соотношение
Определение. Транспозицией называется перестановка типа , то есть это перестановка, меняющая местами лишь два элемента.
Упражнение. Докажите, что любая перестановка может быть представлена композицией транспозиций.
Ясно, что представление в виде транспозиций неоднозначно, причём может отличаться даже количество транспозиций, используемых для представления перестановки, например:
Интересно, однако, что количество транспозиций для любой заданной перестановки всегда либо чётное либо нечётное. Это не совсем очевидно и требует доказательства, которое предсталено следующим определением с прилагающимися упражнениями.
Определение. Инверсией перестановки называется такая пара , что .
Инверсии — это такие пары элементов, которые при применении перестановки меняют свой относительный порядок. Например, для перестановки 35124 имеется 5 инверсий: 3 и 1, 3 и 2, 5 и 1, 5 и 2, 5 и 4. Инверсии имеют важное значение при анализе быстродействия компьютерных алгоритмов, однако нас само количество инверсий интересовать не будет, нас будет интересовать лишь то, чётное это количество или нет.
Определение. Перестановка называется чётной (нечётной), если она имеет чётное (соответственно нечётное) число инверсий.
Упражнение. Докажите, что любая транспозиция — это нечётная перестановка.
Упражнение. Докажите, что произведение чётных перестановок даёт чётную перестановку, произведение нечётных — нечётную, а произведениче чётной и нечётной перестановки — чётную перестановку.
Тривиальная перестановка, которая оставляет все элементы на месте, чётная. Если умножить её на транспозицию — получаем нечётную перестановку. Умножная её на транспозицию ещё раз — опять получаем чётную перестановку. Поскольку любая перестановка однозначно либо чётная либо нечётная, то, рассуждая по индукции, приходим к ожидаемому: любая перестановка всегда представлена в виде транспозиций либо чётным их числом, либо нечётным.
Упражнение. Докажите, что для любого количество чётных и нечётных перестановок на одинаково.
Пока мы рассмотрели понятие чётности перестановок лишь в качестве упражнения, но довольно скоро вы увидите, что оно играет весьма важную теоретическую роль.
Определение. Беззнаковым числом Стирлинга первого рода называется количество перестановок множества , содержащих ровно циклов.
Слово «беззнаковый» мы будем опускать, поскольку пока оно не имеет для нас никакого смысла (он проявится позже). Прямо из определения следует такое простое соотношение:
Теорема.
Доказательство. В качестве упражнения.
Выше мы уже фактически доказали, что . Так же очевидно, что . Для вычисления остальных значений поможет следующая рекурсивная формула.
Теорема.
Доказательство. Рассмотрим какой-нибудь один отдельно взятый элемент множества . Под действием перестановки с циклами может либо оставаться на месте, либо куда-то передвигаться. Перестановок, когда остаётся на месте, ровно штук. Если же куда-то передвигается, то мы можем рассмотреть перестановку множества с циклами: в эту перестановку, записанную в виде циклов, достаточно лишь вставить элемент после какого-нибудь другого элемента. Всего нам доступно позиций для вставки.
По этой формуле с помощью компьютера можно сравнительно легко находить числа Стирлинга. Конечно, сами по себе они мало интересны и вряд ли вам придётся когда-либо их вычислять. Интреснее то, как они сочетаются с другими объектами математики, к чему мы вернёмся в последующих главах нашей книги.
Упражнение. Посадил злой вертухай сотню гномиков в тюрьму, каждого пронумеровал и поставил условия:
— Завтра каждый из вас по одному будет заходить в специальную камеру, где будет лежать сотня пронумерованных конвертов. В каждом конверте — какой-то номер (просто все цифры от одного до ста, разложенные по конвертам случайным образом). Каждый из вас будет иметь право открыть ровно 50 конвертов, чтобы найти свой номер. Если все вы найдете свои номера — освобожу. Если хотя бы один ошибется — казню всех.
Гномики после обсуждения общей стратегии больше никак общаться не смогут и вообще друг друга не увидят. Конверты после каждого гномика закрываются обратно, так что входящий в камеру гномик не имеет никакой информации о том, что нашли или не нашли другие гномики и какие конверты они открывали.
Гномикам надо придумать стратегию как искать свой номер, чтобы найти. Если открыть просто наугад 50 из 100 конвертов, то вероятность найти свой номер весьма мала (пополам на пополам). Учитывая, что гномиков сто штук, то их общие шансы при случайной стратегии оказываются вообще ничтожны. Надо поэтому придумать какую-то альтернативную стратегию. (По хорошему в этой задаче еще надо проанализировать в конце полученное решение, но этого пока я от читателя не требую, поскольку я не рассказывал методов, которые позволяют это делать; впрочем, вы можете попытаться дать грубые оценки).