Дискретная математика & математическая логика
..pdfПолучаем 7 частей:
х(3) = 7.
Как быть при n = 4? Возникает сомнение, что число частей будет зависеть от расположения четвёртой прямой – рис. 2.5:
Рис. 2.5. Разбиение плоскости четырьмя прямыми – первый вариант
Или иначе – рис. 2.6?
Рис. 2.6. Разбиение плоскости четырьмя прямыми – второй вариант
К счастью, всё едино, х(4) = 11 – рис. 2.7:
51
|
4 |
6 |
|
|
|
3 |
|
10 |
|
9 |
|
2 |
|
8 |
|
|
1 |
Рис. 2.7. Разбиение плоскости четырьмя прямыми
Если взять пятую прямую, то х(5) = 16. Получаем ряд чисел
2, 4, 7, 11, 16.
Разностьсоседнихчиселдаётнатуральныйряд, начинающийсяс2:
4 – 2 = 2,
7 – 4 = 3,
11 – 7 = 4,
16 – 11 = 5…
Получается, что очередная, n-я прямая увеличивает число имевшихся частей на n!
Похоже, что х(n) = х (n – 1) + n.
Пусть (n – 1)-я прямая уже есть. Начинаем проводить n-ю из бесконечности. Новая прямая идёт по одной из областей, на которые разделена плоскость. Но вот она встретила какую-то прямую – и эта область разбилась на две части. Новая прямая идёт дальше, встречает другую, «старую» прямую и разделяет надвое и эту область. Таким образом, новая прямая встречает и пересекает все n – 1 «старых» прямых и при пересечении с последней число частей уве-
52
личится на n – 1. Но на этом новая прямая не останавливается: прощаясь с (n – 1)- й прямой, она режет очередную n-ю область, уходя в бесконечность! Таким образом, действительно, х (n) = х (n – 1) + n. Эторекурсия!
Попробуем найти формулу числа частей в зависимости от n, т.е. раскроем рекурсию.
Возьмём, например, формулу
x(n) = an2 + bn + c,
где коэффициенты пока неизвестны. Их надо подобрать так, чтобы
х(n) – х(n – 1) = n,
х(1) = 2.
Возьмём х(n – 1), тогда
x(n −1) = a(n −1)2 + b(n −1) + c = (an2 + bn + c) − 2an − (b − a) = = x(n) − 2an − (b − a),
или x(n − 1) = x(n) − [2an + (b − a)].
Таким образом, из первого условия получим, что x(n −1) − x(n) = [2an + (b − a)] = n.
Это возможно только в случае, если
2а = 1, b − а = 0,
поэтому
a = b = 1 , 2
т.е. x(n) = 1 n2 + 1 n + c. 2 2
Но из первого условия
53
x(1) = 1 + 1 + c, 2 2
тогда с = 1.
В результате имеем
x(n) = 1 n2 + 1 n + 1,
|
|
2 |
2 |
|
||
или иначе: |
|
|
|
|
|
|
x(n) = |
n2 |
+ |
n |
+ 1 = |
n2 + n + 2 |
. |
|
|
|
||||
2 |
2 |
2 |
|
Мы раскрыли рекурсию!
Задача о разбиении пространства плоскостями
На сколько частей у(n) разбивает пространство n плоскостей, если никакие две из них не параллельны, никакие три не пересекаются по одной прямой и никакие четыре не проходят через одну точку [5]?
Ясно, что у(1) = 2. Пусть уже имеется n плоскостей и пространство разбито на у(n) частей. Проведём (n + 1)-ю плоскость. Каждая из ранее построенных плоскостей пересекается с ней по какой-либо прямой, и эти n прямых разбивают новую плоскость на х(n) частей. А каждая из этих частей плоскости делит некоторую ранее «отрезанную» область пространства на две части, т.е. (n + 1)-я плоскость увеличивает число частей на х(n).
Посему
y(n + 1) = y(n) + x(n) = y(n) + n2 + n + 2 . 2
Можно раскрыть эту рекурсию по аналогии с предыдущей задачей, взяв y(n) = an3 + bn2 + cn + d.
54
Можно показать, что
y(n) = n3 + 5n + 6 . 6
2.6. ОБОБЩЁННЫЙ ФАКТОРИАЛ И ЧИСЛА КАТАЛАНА
На окружности заданы 2n точек. Сколькими способами их можно попарно соединить с помощью n отрезков, чтобы не было их пересечений [5]?
n = 1. Здесь возможен один способ – рис. 2.8:
Рис. 2.8. Соединение двух точек окружности при n = 1
n = 2. Здесь возможны два способа – рис. 2.9, 2.10:
Рис. 2.9. Соединение четырёх точек окружности – первый вариант
55
Рис. 2.10. Соединение четырёх точек окружности – второй вариант
Пронумеруем точки. Обозначим варианты, как множества:
–первый – {1, 2}, {3, 4},
–второй – {1, 4}, {2, 3}.
Теперь n = 3. Вот, например, первый вариант – рис. 2.11:
Рис. 2.11. Соединение шести точек окружности – первый вариант
Для этого варианта {1, 2}, {3, 6}, {4, 5}.
Далее – рис. 2.12:
56
Рис. 2.12. Соединение шести точек окружности – второй вариант
Второй вариант – {1, 4}, {2, 3}, {5, 6}.
Далее – рис. 2.13:
Рис. 2.13. Соединение шести точек окружности – третий вариант
Третий вариант – {1, 6}, {2, 5}, {3, 4}.
Попробуем иначе – рис. 2.14:
57
Рис. 2.14. Соединение шести точек окружности – четвёртый вариант
Четвёртый вариант – {1, 2}, {3, 4}, {5, 6}.
И наконец – рис. 2.15:
Рис. 2.15. Соединение шести точек окружности – пятый вариант
Пятый вариант – {1, 6}, {2, 3}, {4, 5}.
Построим таблицу вариантов для шести точек:
58
{1, 2}, {3, 6}, {4, 5}
{1, 4}, {2, 3}, {5, 6}
{1, 6}, {2, 5}, {3, 4}
{1, 2}, {3, 4}, {5, 6}
{1, 6}, {2, 3}, {4, 5}
Таким образом, возможны пять способов.
Обозначим искомое число способов z(n). Предположив, что значения z(1), z(2), …, z(n) известны, попробуем найти z(n + 1).
Расположим на окружности 2(n + 1) точек и выберем любую из них – например, А – рис. 2.16:
Рис. 2.16. Соединение 2(n + 1) точек окружности
Точку А можно соединить с любой из оставшихся, при этом все точки разобьются на две группы. Точки разных групп соединять нельзя – иначе получим пересечение отрезков. Будем соединять точки внутри групп. Но если точек внутри групп нечётное количество – то одной точке не хватит пары! Значит, точку А надо соединять не беспорядочно, а через одну, так, чтобы в первой и второй группах осталось соответственно 0 и 2n точек; 2 и 2n – 2; 4 и 2n – 4; …; 2 n и 0. Если в одной группе 0 точек, то все соединения дают 2n точек другой группы, а это z(n).
Если в одной из групп z(m) ≠ 0 точек, то в другой 2(n – m) ≠ 0 точек, тогда число возможных соединений по комбинаторному правилу умножения получим:
59
z(m) · z(n – m).
Следовательно,
z(n + 1) = z(n) + z(1) z(n – 1) + z(2) z(n – 2) + … + + z(n – 2) z(2) + z(n – 1) z(1) + z(n).
Итак: z(1) = 1,
z(2) = 1 + 1 = 2,
z(3) = 2 + 1 1 + 2 = 5,
z(4) = 5 + 1 2 + 2 1 + 5 = 14,
z(5) = 14 + 1 5 + 2 2 + 5 1 + 14 = 42.
Эти числа рассматривал в XVII веке Эйлер, правда, в связи с другой задачей. Он подобрал (как сам признавался, с большим трудом) формулу для z(n):
z(n) = (4n − 2)!!!!, (n + 1)!
где в числителе – обобщённый факториал, n! – произведение всех натуральных чисел до n включительно; n!! – двойной факториал – натуральные числа перемножаются через одно и наибольший сомножитель тоже равен n, т.е. если n – чётное, то n!! – произведение
всех чётных, не превышающих n: 2 4 6 … n. |
|
||
Если n – нечётное, |
то |
n!! – произведение |
всех нечётных, |
не превышающих n: 1 3 5 … |
|
n. Аналогично n!!! – |
перемножается |
каждое третье число, а n!!!! – каждое четвёртое.
У Эйлера (4n – 2)!!!! = 2 6 10 … (4n – 2).
Эти числа принято называть числами Каталана – в честь бельгийского математика XIX века, хотя Эйлер открыл их много раньше.
60