Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ДМ.doc
Скачиваний:
34
Добавлен:
25.08.2019
Размер:
1.16 Mб
Скачать

1.2. Модификации формулы включения и исключения

2.а. Формулу (2.1) можно обобщить для определения числа элементов, обладающих в точности k свойствами (0  k  n):

N(k) = + …+ (– 1)s–k + …

+ (–1)n–k N(1, 2, … , n). (3.4)

Пример 3.2. В отделе НИИ каждый сотрудник владеет хотя бы одним иностранным языком. Известно, что английским языком владеют 6 человек, немецким – 6, французским – 7, английским и немецким – 4, немецким и французским – 3, английским и французским – 2, все три языка знает 1 человек. Определить, сколько всего человек в отделе, сколько человек владеют только английским, только немецким, только французским, и сколько человек знает только 1 иностранный язык.

Решение. Согласно условиям задачи N(0) = 0, т.к. в отделе нет сотрудников, не владеющих иностранными языками. Следовательно, по формуле (3.1) получаем:

N = – + N(1, 2, 3) (3.5)

N = 6 + 6 + 7 – 4 – 3 – 2 + 1 = 11 человек всего в отделе.

Для вычисления остальных показателей также воспользуемся формулой (3.5). Найдем, например N(только А) – число человек, не владеющих никаким другим языком, кроме английского. Для этого формулу (3.5) надо применить только к множеству людей, владеющих английским языком. В этом случае n = 2. Тогда N = N(A), N(1) и N(2) – число людей, владеющих помимо английского еще немецким и французским, соответственно, N(1, 2) – число людей, владеющих помимо английского еще одновременно немецким и французским. Отсюда

N(только A) = N(A) – N(А и Н) – N(А и Ф) + N(А и Н и Ф) =

6 – 4 – 2 + 1 = 1.

Аналогично

N(только Н) = N(Н) – N(А и Н) – N(Н и Ф) + N(А и Н и Ф) =

6 – 4 – 3 + 1 = 0.

N(только Ф) = N(Ф) – N(Ф и А) – N(Ф и Н) + N(А и Н и Ф) =

7 –2 – 3 + 1 = 3.

Вычислим теперь N(1) – число людей, владеющих только 1 языком. Воспользуемся формулой (3.4) при k = 1.

N(1) = N(А) + N(Н) + N(Ф) + (–1)2–1  [N(А и Н) + N(Н и Ф) + N(А и Ф)] + (–1)3–1  N(А и Н и Ф) = 6 + 6 + 7 – 2(4 + 3 + 2) + 31 = 4.

Такой же результат получим, если сложим N(только A) + N(только Н) + N(только Ф).

2.б. Формулу (3.1) можно также интерпретировать, как подсчет мощностей пересечений различных множеств, т.е. дать теоретико-множественное представление принципа включения и исключения. Пусть имеем некоторое конечное множество А и его подмножества Аj, j = 1,…, n. Тогда теоретико-множественный аналог формулы (3.1) будет иметь вид:

= |A| – + + …

+ (– 1)k + …+ (–1)n .

Лекция № 11 Рекуррентные соотношения

В комбинаторных задачах искомым решением часто является числовая последовательность u1, u2, …, un, … Например, если мы ищем число подмножеств m-элементного множества, то . В данном разделе рассмотрим ситуацию, при которой свойства членов искомой последовательности определяются некоторым рекуррентным соотношением, которому удовлетворяют числа un:

un + k + b1 un + k – 1 + b2 un + k – 2 +…+ bk un = 0, (3.6)

где b1, b2, …, bk – некоторые коэффициенты. Выражение (3.6) называется еще разностным линейным уравнением k-го порядка с постоянными коэффициентами.

Одной из наиболее известных последовательностей, задаваемых линейным рекуррентным соотношением, является последовательность Фибоначчи {Fn}, определяемая следующими условиями: F0 = 0; F1 = 1; Fn+2 = Fn+1 + Fn. Отсюда получаем F2 = 1; F3 = 2; F4 = 3; F5 = 5; F6 = 8 и т.д.

Воспользовавшись уравнением (2.8) всегда можно вычислить значения un для любых n, если знать первые k членов последовательности. Однако, часто необходимо знать явную формулу для вычисления un.

Теорема 3.4. Пусть 1, 2,…, s – корни соответствующих кратностей m1, m2,…, ms характеристического уравнения для выражения (3.6):

k + b1k–1 + b2k–2 +…+ bk = 0 (3.7)

Тогда общее решение уравнения (3.6) определяется по формуле:

un = ( C11 + C12 n + C13n2 + … + ) +

( C21 + C22 n + C23n2 + … + ) + … (3.8)

( Cs,1 + Cs,2 n + Cs,3n2 + … + ) ,

где C11,…, – константы (их число равно k), определяемые начальными условиями.

Пример 3.3. Решим уравнение Фибоначчи Fn+2 – Fn+1 – Fn = 0. Его характеристическое уравнение имеет вид: 2 –  – 1 = 0. Корни равны – некратные. Обозначим Ф1 = 1  1.618; Ф2 = 2  – 0.618. Общее решение равно:

.

Из начальных условий F0 = 0; F1 = 1 получаем систему уравнений для вычисления С1 и С2 = 1:

.

Отсюда С1 = – С2 = .

Использование рекуррентных соотношений дает эффективный метод решения многих комбинаторных задач.

Пример 3.4. Найти число бинарных n-последовательностей, в которых никакие две единицы не стоят рядом.

Решение. Обозначим:

zn – число искомых последовательностей;

хn – число последовательностей, заканчивающихся 0;

уn – число последовательностей, заканчивающихся 1.

Назовем для краткости последовательность, заканчивающуюся 0 – х-последовательностью, а заканчивающихся 1 – у-последовательностью.

Очевидны следующие их свойства.

1) х-последовательность длиной n можно получить, приписав 0 в конец либо у-последовательности либо х-последовательности длиной n – 1.

2) у-последовательность длиной n можно получить, приписав 1 только в конец х-последовательности длиной n – 1.

Отсюда имеем следующую систему уравнений:

.

Уравнение (a) отражает свойство 1), уравнение (b) – свойство 2), а уравнение (а) соответствует очевидному равенству.

Из уравнения (b) при замене n на n – 1 имеем: уn–1 = хn–2.

Подставим это равенство в (a), получим: хn = хn–1 + хn–2, т.е. числа хn образуют последовательность Фибоначчи. Вычтем (b) из (a), получим:

хn – уn = уn–1  хn = уn + уn–1  уn+1 = уn + уn–1

– тоже последовательность Фибоначчи. В соответствие с формулой общего решения и уравнением (c) получим:

.

Для нахождения констант запишем начальные условия. z1 = 2, т.к. существует 2 последовательности длиной 1: 0 и 1. z2 = 3, т.к. существует 3 последовательности длиной 2: (0 0), (0 1), (1 0). Отсюда ; . Следовательно

.

Например, z9 = 89, z19 = 10946.