Комбинаторные алгоритмы для программистов

          

Затруднение мажордома"


Бывают комбинаторные задачи, в которых приходится составлять не одно рекуррентное соотношение, а систему соотношений, связывающую несколько последовательностей. Эти соотношения выражают

Затруднение мажордома
-у члены последовательностей через предыдущие члены не только данной, но и остальных последовательностей.

Задача: "Затруднение мажордома". Однажды мажордом короля Артура обнаружил, что к обеду за круглым столом приглашено 6 пар враждующих рыцарей. Сколькими способами можно рассадить их так, чтобы никакие два врага не сидели рядом?

Если мы найдем какой-то способ рассадки рыцарей, то, пересаживая их по кругу, получим еще 11 способов. Мы не будем сейчас считать различными способы, получающиеся друг из друга такой циклической пересадкой.

Введем следующие обозначения. Пусть число рыцарей равно

Затруднение мажордома
. Через
Затруднение мажордома
обозначим число способов рассадки, при которых никакие два врага не сидят рядом. Через
Затруднение мажордома
обозначим число способов, при которых рядом сидит ровно одна пара врагов, и через
Затруднение мажордома
- число способов, при которых есть ровно две пары враждующих соседей.

Выведем сначала формулу, выражающую

Затруднение мажордома
через
Затруднение мажордома
. Пусть
Затруднение мажордома
пар рыцарей посажены так, что никакие два врага не сидят рядом. Мы будем считать, что все враждующие пары рыцарей занумерованы. Попросим встать из-за стола пару рыцарей с номером
Затруднение мажордома
. Тогда возможны три случая: среди оставшихся за столом нет одной пары соседей- врагов, есть одна такая пара и есть две такие пары (ушедшие рыцари могли разделять эти пары). Мы считаем, что
Затруднение мажордома
. При
Затруднение мажордома

последующие рассуждения теряют силу.

Выясним теперь, сколькими способами можно снова посадить ушедших рыцарей за стол так, чтобы после этого не было одной пары соседей-врагов.

Проще всего посадить их, если за столом рядом сидят две пары врагов. В этом случае один из вновь пришедших садится между рыцарями первой пары, а другой – между рыцарями второй пары. Это можно сделать двумя способами. Но так как число способов рассадки

Затруднение мажордома
рыцарей, при которых две пары соседей оказались врагами, равно
Затруднение мажордома
, то всего получилось
Затруднение мажордома
способов.

Пусть теперь рядом сидит только одна пара врагов.
Один из вернувшихся должен сесть между ними. Тогда за столом окажутся

Затруднение мажордома
рыцарей, между которыми есть
Затруднение мажордома
мест. Из них два места - рядом с только что севшим гостем – запретны для второго рыцаря, и ему остается
Затруднение мажордома
мест. Так как первым может войти любой из двух вышедших рыцарей, то получается
Затруднение мажордома
способов рассадки. Но число случаев, когда
Затруднение мажордома
рыцарей сели так, чтобы ровно одна пара врагов оказалась соседями, ровно
Затруднение мажордома
. Поэтому мы получаем
Затруднение мажордома
способов посадить гостей требуемым образом.
Наконец, пусть никакие два врага не сидели рядом. В этом случае первый рыцарь садится между любыми двумя гостями - это он может сделать
Затруднение мажордома
способами. После этого для его врага останется
Затруднение мажордома
мест - он может занять любое место, кроме двух мест, соседних с только что севшим рыцарем. Таким образом, если
Затруднение мажордома
рыцарей уже сидели нужным образом, то вернувшихся гостей можно посадить
Затруднение мажордома

способами. Как уже отмечалось, разработанными случаями исчерпываются все возможности. Поэтому имеет место рекуррентное соотношение
Затруднение мажордома

(7.7)

Этого соотношения пока недостаточно, чтобы найти
Затруднение мажордома
для всех значений
Затруднение мажордома
. Надо еще узнать, как выражаются
Затруднение мажордома
через
Затруднение мажордома
.
Предположим, что среди
Затруднение мажордома
рыцарей оказалась ровно одна пара врагов-соседей. Мы знаем, что это может произойти в
Затруднение мажордома
случаях. Во избежание ссоры попросим их удалиться из-за стола. Тогда останется
Затруднение мажордома
рыцарей, причем возможно одно из двух: либо среди оставшихся нет врагов-соседей, либо есть ровно одна пара таких врагов - до ухода покинувших зал они сидели по обе стороны от них и теперь оказались рядом. Во втором случае ушедших можно посадить обратно только на старое место - иначе появится вторая пара враждующих соседей. Но так как
Затруднение мажордома
рыцарей можно посадить
Затруднение мажордома
способами так, чтобы была только одна пара враждующих соседей, то мы получаем
Затруднение мажордома
вариантов (возвратившихся рыцарей можно поменять местами). В первом же случае можно посадить ушедших между любыми двумя рыцарями, то есть
Затруднение мажордома

способами, а так как их еще можно поменять местами, то получится
Затруднение мажордома
способов. Комбинируя их со всеми способами посадки
Затруднение мажордома
пар рыцарей, при которых нет соседей врагов, получаем
Затруднение мажордома
способов.


Наконец, номер ушедшей и вернувшейся пары рыцарей мог быть любым от 1 до
Затруднение мажордома
. Отсюда вытекает, что рекуррентное соотношение для
Затруднение мажордома
имеет вид
Затруднение мажордома

(7.8)

Наконец, разберем случай, когда среди
Затруднение мажордома
рыцарей было две пары врагов-соседей. Номера этих пар можно выбрать
Затруднение мажордома
способами. Заменим каждую пару одним новым рыцарем, причем будем считать новых двух рыцарей врагами. Тогда за столом будут сидеть
Затруднение мажордома

рыцарей, причем среди них либо не будет ни одной пары врагов-соседей (если новые рыцари не сидят рядом), либо только одна такая пара.
Первый вариант может быть в
Затруднение мажордома
случаях. Вернуться к исходной компании мы можем 4 способами благодаря возможности изменить порядок рыцарей в каждой паре. Поэтому первый вариант приводит к
Затруднение мажордома

способами.
Второй же вариант может быть в
Затруднение мажордома
случаях. Имеется
Затруднение мажордома
случаев, когда какая-нибудь пара врагов сидит рядом. Если указать, какая именно пара должна сидеть рядом, получим в
Затруднение мажордома
раз меньше случаев.
Здесь тоже можно вернуться к исходной компании 4 способами, и мы получаем всего
Затруднение мажордома
способов. Отсюда вытекает, что при
Затруднение мажордома

Затруднение мажордома

(7.9)

Мы получили систему рекуррентных соотношений
Затруднение мажордома

(7.10)

Затруднение мажордома

(7.11)

Затруднение мажордома

(7.12)

Они справедливы при
Затруднение мажордома
. Но простой подсчет показывает, что
Затруднение мажордома
. Поэтому из соотношений 7.10-7.12 вытекает, что
Затруднение мажордома
. Продолжая далее, находим, что гостей можно посадить за стол требуемым образом
Затруднение мажордома
способами.
Затруднение мажордома

Содержание раздела