Числа Каталана — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Источники)
Строка 13: Строка 13:
  
 
<tex dpi = 120> 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, ... </tex>
 
<tex dpi = 120> 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, ... </tex>
 +
 +
==Рекуррентная формула чисел Каталана==
 +
 +
<tex dpi = 150>C_n = \sum_{i = 0}^{n - 1} C_i C_{n - 1 - i} </tex>
 +
====Доказательство====
 +
Рекуррентную формулу легко вывести из задачи о правильных скобочных последовательностях.
 +
 +
Самой левой открывающей скобке <tex dpi = 110> l </tex> соответствует определённая закрывающая скобка <tex dpi = 110> r </tex>, которая разбивает формулу на две части, каждая из которых в свою очередь является правильной скобочной последовательностью. Поэтому, если мы обозначим <tex dpi = 110> i = r - l - 1 </tex>, то для любого фиксированного <tex dpi = 110> r </tex> будет ровно <tex dpi = 135> C_i C_{n-1-i} </tex> способов. Суммируя это по всем допустимым <tex dpi = 110> i </tex>, мы и получаем рекуррентную зависимость на <tex dpi = 135> C_n </tex>.
 +
 +
===Аналитическая формула===
 +
 +
<tex dpi = 150> C_n = \frac{1}{n+1} \binom {2n} {n} </tex>
 +
====Доказательство====
 +
 +
Сместим правильный путь на 1 клетку вниз. Теперь правильный путь начинается в точке
 +
<tex dpi = 120> (0, −1) </tex>, заканчивается в точке <tex dpi = 120> (n, n − 1) </tex> и не имеет общих точек с прямой <tex dpi = 120> y = x </tex> — биссектрисой первого
 +
квадранта. Нам нужно найти количество правильных путей. Для этого мы найдем количество неправильных,
 +
и из общего числа путей вычтем количество неправильных.
 +
Мы рассматриваем пути из точки <tex fpi = 120> (0, −1) </tex> в точку <tex dpi = 120> (n, n − 1) </tex>. Длина такого пути равна 2n и он содержит n
 +
вертикальных сегментов и n горизонтальных. Количество всех таких путей равно числу способов выбрать n
 +
вертикальных сегментов из общего числа 2n сегментов, т.е. равно <tex dpi = 135> \binom {n}{2n} </tex>.
 +
Рассмотрим неправильный путь и его первую точку на прямой <tex dpi = 120> y = x </tex> (точка A). Отрезок пути от точки
 +
(0, −1) до точки A заменим симметричным относительно прямой y = x. Мы получим путь длины 2n, идущий
 +
из точки (−1, 0) в точку (n, n − 1).
 +
Такой путь обязательно пересекает прямую y = x.
 +
Обратно, пусть нам дан путь длины 2n из точки (−1, 0) в точку (n, n − 1) и пусть A — первая точка
 +
этого пути, лежащая на прямой y = x. Заменив участок пути от точки (−1, 0) до точки A на симметричный
 +
относительно прямой y = x, мы получим неправильный путь из точки (0, −1) в точку (n, n − 1). Следова-
 +
тельно, неправильных путей из точки (0, −1) в точку (n, n − 1) столько же, сколько путей из точки (−1, 0) в
 +
точку (n, n−1). Такой путь длины содержит n+ 1 горизонтальных и n−1 вертикальных участков. Поэтому,
 +
количество таких путей равно C n−1 2n. Значит, количество правильных путей (т.е. число Каталана Cn) равно
 +
 +
<tex dpi = 150> C_n = \binom {2n} {n} - \binom {2n} {n-1} = \frac{1}{n+1} \binom {2n} {n} </tex>
  
 
==Примеры==
 
==Примеры==
Строка 36: Строка 69:
 
<tex dpi = 120> 42 + 14 + 2 \cdot 5 + 5 \cdot 2 + 14 + 42 = 132 </tex>
 
<tex dpi = 120> 42 + 14 + 2 \cdot 5 + 5 \cdot 2 + 14 + 42 = 132 </tex>
 
способа.Такие вычисления можно проводить и дальше.
 
способа.Такие вычисления можно проводить и дальше.
 +
 +
====Доказательство====
 +
Пусть <tex dpi = 120>t_n</tex> — число триангуляций <tex dpi = 120> (n + 2) </tex> угольника при <tex dpi = 120> n >= 1 </tex>; положим <tex dpi = 120> t_0 </tex> = 1. Рассмотрим произвольную триангуляцию и выделим треугольник, примыкающий к стороне 01 (см. рис.).
 +
 +
[[Файл:Каталан1.PNG]]
 +
 +
Пусть <tex dpi = 120>k</tex> — номер третьей вершины этого треугольника. Выделенный треугольник разбивает <tex dpi = 120>(n + 2)</tex>-угольник на <tex dpi = 120>k</tex>-угольник и <tex dpi = 120>(n-k+3)</tex>-угольник, каждый из которых триангулирован диагоналями. Перенумеруем вершины этих многоугольников против часовой стрелки так, чтобы нумерация вершин в каждом из них начиналась с 0. В результате получим пару триангуляций <tex dpi = 120>k</tex>-угольника и <tex dpi = 120>(n-k+3)</tex>-угольника. Наоборот, каждая пара триангуляций <tex dpi = 120>k</tex>-угольника и <tex dpi = 120>(n-k+3)</tex>-угольника
 +
определяет триангуляцию исходного многоугольника. Поэтому
 +
<tex dpi = 120>t_{n+1} = t_0 t_n + t_1 t_{n-1} + \cdot \cdot \cdot + t_n t_0 </tex>
 +
и поскольку <tex dpi = 120>t_0</tex> = 1, последовательность чисел <tex dpi = 120>t_n</tex> совпадает с последовательностью Каталана.
  
 
===Задача расстановки скобок===
 
===Задача расстановки скобок===
Строка 56: Строка 99:
 
способа. Следуя такому походу, можно вычислять количество правильных скобочных последовательностей дальше.
 
способа. Следуя такому походу, можно вычислять количество правильных скобочных последовательностей дальше.
  
==Рекуррентная формула чисел Каталана==
+
==Смотри также==
 
+
<wikitex>
<tex dpi = 150>C_n = \sum_{i = 0}^{n - 1} C_i C_{n - 1 - i} </tex>
+
*[http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0,_%D0%BD%D0%B0%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F Двоичное дерево поиска]
====Доказательство====
+
*[http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D1%80%D0%B8%D0%B0%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%B2_(%D1%83%D1%88%D0%BD%D0%B0%D1%8F_%2B_%D0%BC%D0%BE%D0%BD%D0%BE%D1%82%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F) Триангуляция полигонов]
Рекуррентную формулу легко вывести из задачи о правильных скобочных последовательностях.
+
</wikitex>
 
 
Самой левой открывающей скобке <tex dpi = 110> l </tex> соответствует определённая закрывающая скобка <tex dpi = 110> r </tex>, которая разбивает формулу на две части, каждая из которых в свою очередь является правильной скобочной последовательностью. Поэтому, если мы обозначим <tex dpi = 110> i = r - l - 1 </tex>, то для любого фиксированного <tex dpi = 110> r </tex> будет ровно <tex dpi = 135> C_i C_{n-1-i} </tex> способов. Суммируя это по всем допустимым <tex dpi = 110> i </tex>, мы и получаем рекуррентную зависимость на <tex dpi = 135> C_n </tex>.
 
 
 
===Аналитическая формула===
 
 
 
<tex dpi = 150> C_n = \frac{1}{n+1} \binom {n} {2n} </tex>
 
====Доказательство====
 
 
 
Эту формулу проще всего вывести из задачи о монотонных путях. Общее количество монотонных путей в решётке размером <tex dpi = 120> n \times n </tex> равно <tex dpi = 135> \binom {n}{2n} </tex>. Теперь посчитаем количество монотонных путей, пересекающих диагональ. Рассмотрим какой-либо из таких путей, и найдём первое ребро, которое стоит выше диагонали. Отразим относительно диагонали весь путь, идущий после этого ребра. В результате получим монотонный путь в решётке <tex dpi = 110> (n - 1) \times (n + 1) </tex>. Но, с другой стороны, любой монотонный путь в решётке <tex dpi = 110> (n - 1) \times (n + 1) </tex> обязательно пересекает диагональ, следовательно, он получен как раз таким способом из какого-либо (причём единственного) монотонного пути, пересекающего диагональ, в решётке <tex dpi = 120> n \times n</tex>. Монотонных путей в решётке <tex dpi = 110>(n - 1) \times (n + 1)</tex> имеется <tex dpi = 135> \binom {n-1} {2n} </tex>. В результате получаем формулу:
 
 
 
Сместим правильный путь на 1 клетку вниз. Теперь правильный путь начинается в точке
 
<tex dpi = 120> (0, −1) </tex>, заканчивается в точке <tex dpi = 120> (n, n − 1) </tex> и не имеет общих точек с прямой <tex dpi = 120> y = x </tex> — биссектрисой первого
 
квадранта. Нам нужно найти количество правильных путей. Для этого мы найдем количество неправильных,
 
и из общего числа путей вычтем количество неправильных.
 
Мы рассматриваем пути из точки <tex fpi = 120> (0, −1) </tex> в точку <tex dpi = 120> (n, n − 1) </tex>. Длина такого пути равна 2n и он содержит n
 
вертикальных сегментов и n горизонтальных. Количество всех таких путей равно числу способов выбрать n
 
вертикальных сегментов из общего числа 2n сегментов, т.е. равно <tex dpi = 135> \binom {n}{2n} </tex>.
 
Рассмотрим неправильный путь и его первую точку на прямой <tex dpi = 120> y = x </tex> (точка A). Отрезок пути от точки
 
(0, −1) до точки A заменим симметричным относительно прямой y = x. Мы получим путь длины 2n, идущий
 
из точки (−1, 0) в точку (n, n − 1).
 
Такой путь обязательно пересекает прямую y = x.
 
Обратно, пусть нам дан путь длины 2n из точки (−1, 0) в точку (n, n − 1) и пусть A — первая точка
 
этого пути, лежащая на прямой y = x. Заменив участок пути от точки (−1, 0) до точки A на симметричный
 
относительно прямой y = x, мы получим неправильный путь из точки (0, −1) в точку (n, n − 1). Следова-
 
тельно, неправильных путей из точки (0, −1) в точку (n, n − 1) столько же, сколько путей из точки (−1, 0) в
 
точку (n, n−1). Такой путь длины содержит n+ 1 горизонтальных и n−1 вертикальных участков. Поэтому,
 
количество таких путей равно C n−1 2n. Значит, количество правильных путей (т.е. число Каталана Cn) равно
 
 
 
<tex dpi = 150> C_n = \binom {n} {2n} - \binom {n-1} {2n} = \frac{1}{n+1} \binom {n} {2n} </tex>
 
 
 
 
==Источники==
 
==Источники==
 
<wikitex>
 
<wikitex>
Строка 98: Строка 111:
 
*[http://kvant.mccme.ru/1978/07/chisla_katalana.htm Журнал "Квант"]
 
*[http://kvant.mccme.ru/1978/07/chisla_katalana.htm Журнал "Квант"]
 
*[http://desolt.ru/karimova.html Глава 5. Комбинаторика]
 
*[http://desolt.ru/karimova.html Глава 5. Комбинаторика]
*[http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0,_%D0%BD%D0%B0%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F Двоичное дерево поиска]
 
*[http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D1%80%D0%B8%D0%B0%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%B2_(%D1%83%D1%88%D0%BD%D0%B0%D1%8F_%2B_%D0%BC%D0%BE%D0%BD%D0%BE%D1%82%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F) Триангуляция полигонов]
 
  
 
</wikitex>
 
</wikitex>

Версия 00:05, 27 ноября 2014

Числа Каталана

Определение:
Числа Каталана — последовательность чисел, выражающих:
  • количество не изоморфных упорядоченных бинарных деревьев с корнем и [math] n + 1 [/math] листьями
  • количество способов соединения [math] 2n [/math] точек на окружности [math] n [/math] не пересекающимися хордами
  • количество триангуляций выпуклого [math] n [/math]-угольника
  • количество способов полностью разделить скобками [math] n + 1 [/math] множитель
  • количество корректных скобочных последовательностей, состоящих из [math] n [/math] открывающих и [math] n [/math] закрывающих скобок


Первые несколько чисел Каталана:

[math] 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, ... [/math]

Рекуррентная формула чисел Каталана

[math]C_n = \sum_{i = 0}^{n - 1} C_i C_{n - 1 - i} [/math]

Доказательство

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

Самой левой открывающей скобке [math] l [/math] соответствует определённая закрывающая скобка [math] r [/math], которая разбивает формулу на две части, каждая из которых в свою очередь является правильной скобочной последовательностью. Поэтому, если мы обозначим [math] i = r - l - 1 [/math], то для любого фиксированного [math] r [/math] будет ровно [math] C_i C_{n-1-i} [/math] способов. Суммируя это по всем допустимым [math] i [/math], мы и получаем рекуррентную зависимость на [math] C_n [/math].

Аналитическая формула

[math] C_n = \frac{1}{n+1} \binom {2n} {n} [/math]

Доказательство

Сместим правильный путь на 1 клетку вниз. Теперь правильный путь начинается в точке [math] (0, −1) [/math], заканчивается в точке [math] (n, n − 1) [/math] и не имеет общих точек с прямой [math] y = x [/math] — биссектрисой первого квадранта. Нам нужно найти количество правильных путей. Для этого мы найдем количество неправильных, и из общего числа путей вычтем количество неправильных. Мы рассматриваем пути из точки [math] (0, −1) [/math] в точку [math] (n, n − 1) [/math]. Длина такого пути равна 2n и он содержит n вертикальных сегментов и n горизонтальных. Количество всех таких путей равно числу способов выбрать n вертикальных сегментов из общего числа 2n сегментов, т.е. равно [math] \binom {n}{2n} [/math]. Рассмотрим неправильный путь и его первую точку на прямой [math] y = x [/math] (точка A). Отрезок пути от точки (0, −1) до точки A заменим симметричным относительно прямой y = x. Мы получим путь длины 2n, идущий из точки (−1, 0) в точку (n, n − 1). Такой путь обязательно пересекает прямую y = x. Обратно, пусть нам дан путь длины 2n из точки (−1, 0) в точку (n, n − 1) и пусть A — первая точка этого пути, лежащая на прямой y = x. Заменив участок пути от точки (−1, 0) до точки A на симметричный относительно прямой y = x, мы получим неправильный путь из точки (0, −1) в точку (n, n − 1). Следова- тельно, неправильных путей из точки (0, −1) в точку (n, n − 1) столько же, сколько путей из точки (−1, 0) в точку (n, n−1). Такой путь длины содержит n+ 1 горизонтальных и n−1 вертикальных участков. Поэтому, количество таких путей равно C n−1 2n. Значит, количество правильных путей (т.е. число Каталана Cn) равно

[math] C_n = \binom {2n} {n} - \binom {2n} {n-1} = \frac{1}{n+1} \binom {2n} {n} [/math]

Примеры

Задача разбиения выпуклого [math] n [/math]—угольника на треугольники не пересекающимися диагоналями

Разбиение выпуклого шестиугольника

Ответ на задачу при [math] n = 3 [/math] тривиален: никаких диагоналей проводить не надо. В четырёхугольнике можно провести любую из двух диагоналей, так что способов два. В пятиугольнике — из любой вершины две диагонали, [math] 5 [/math] способов. При [math] n = 6 [/math] — первый не вполне очевидный ответ: [math] 14 [/math] способов (см. рис.); чтобы не запутаться, сторона BC выделена и отдельно нарисованы разрезания, в которых к ней примыкают соответственно треугольники [math] BCA, BCF, BCE [/math] и [math] BCD [/math].

Для семиугольника можно выделить одну из сторон и расклассифицировать разрезания в зависимости от того, какой треугольник к этой стороне примыкает. Имеем 5 разных случаев. В первом и последнем из них количество разбиений равно 14, ибо после отрезания треугольника остаётся шестиугольник. Во втором и четвёртом случаях при вырезании треугольника семиугольник распадается на треугольник и пятиугольник. В третьем случае семиугольник распадается на два четырёхугольника. Поскольку каждый из них можно разбить двумя способами, получаем [math]2 \cdot 2 = 4[/math] варианта. Итак, семиугольник можно разбить всего [math] 14 + 5 + 2 \cdot 2 + 5 + 14 = 42 [/math] способами. Рассматривая восьмиугольник, аналогично получаем [math] 42 + 14 + 2 \cdot 5 + 5 \cdot 2 + 14 + 42 = 132 [/math] способа.Такие вычисления можно проводить и дальше.

Доказательство

Пусть [math]t_n[/math] — число триангуляций [math] (n + 2) [/math] угольника при [math] n \gt = 1 [/math]; положим [math] t_0 [/math] = 1. Рассмотрим произвольную триангуляцию и выделим треугольник, примыкающий к стороне 01 (см. рис.).

Каталан1.PNG

Пусть [math]k[/math] — номер третьей вершины этого треугольника. Выделенный треугольник разбивает [math](n + 2)[/math]-угольник на [math]k[/math]-угольник и [math](n-k+3)[/math]-угольник, каждый из которых триангулирован диагоналями. Перенумеруем вершины этих многоугольников против часовой стрелки так, чтобы нумерация вершин в каждом из них начиналась с 0. В результате получим пару триангуляций [math]k[/math]-угольника и [math](n-k+3)[/math]-угольника. Наоборот, каждая пара триангуляций [math]k[/math]-угольника и [math](n-k+3)[/math]-угольника определяет триангуляцию исходного многоугольника. Поэтому [math]t_{n+1} = t_0 t_n + t_1 t_{n-1} + \cdot \cdot \cdot + t_n t_0 [/math] и поскольку [math]t_0[/math] = 1, последовательность чисел [math]t_n[/math] совпадает с последовательностью Каталана.

Задача расстановки скобок

Рассмотрим какое-нибудь арифметическое выражение и сотрём всё, кроме скобок. Получим некоторую систему открывающих и закрывающих скобок. Какими свойствами она обладает? Во-первых, открывающих скобок ровно столько же, сколько и закрывающих. Во-вторых, ни в каком начальном отрезке количество закрывающих скобок не может оказаться больше количества открывающих скобок. (Например, расстановки [math] )( [/math] и [math] ((())))( [/math] — неправильные.) Эти два условия не только необходимы, но и достаточны.

Рассмотрим несколько примеров. Одна пара скобок может выглядеть единственным способом: [math] () [/math]. Две пары — двумя способами: [math] ()() [/math] или [math] (()) [/math]. Три пары — пятью способами: [math] ()()(), ()(()), (())(), (()()) [/math] или [math] ((())) [/math]. Четыре пары, как нетрудно проверить,— четырнадцатью способам и. Чтобы понять, сколькими способами могут выглядеть правильно расставленные пять пар скобок, рассмотрим закрывающую скобку, парную к первой открывающей скобке. Остальные четыре пары тогда разделятся на две группы: расположенные внутри рассмотренной пары и расположенные справа от неё. (Разумеется, любая из этих групп может состоять из 0 скобок.) Способов, когда все четыре пары внутри или все четыре справа, имеется по 14 штук. Когда три пары внутри, а одна справа, имеем 5 способов. Столько же — когда одна внутри, а три справа. Наконец, когда две пары внутри, а две справа, имеем 2 · 2 = 4 способа. Итого [math] 14 + 5 + 2 \cdot 2 + 5 + 14 = 42 [/math] способа. Следуя такому походу, можно вычислять количество правильных скобочных последовательностей дальше.

Смотри также

<wikitex>

</wikitex>

Источники

<wikitex>

</wikitex>