0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Самый простой способ посчитать что-либо - это соотнести объекты с чем-то более простым. Например, можно изучить абстрактные операции на бытовых примерах: соотносить числа и множества с книгами и книжными полками.</p>
1
<p>Самый простой способ посчитать что-либо - это соотнести объекты с чем-то более простым. Например, можно изучить абстрактные операции на бытовых примерах: соотносить числа и множества с книгами и книжными полками.</p>
2
<p>Это же упрощение работает и в математике: чтобы подсчитать сложные объекты, надо соотносить их с объектами, которые вы уже умеете считать. Для этого используется теорема Кейли. В этом уроке мы рассмотрим эту теорему и докажем ее. Вы узнаете, что такое биекция, а также умная конструкция.</p>
2
<p>Это же упрощение работает и в математике: чтобы подсчитать сложные объекты, надо соотносить их с объектами, которые вы уже умеете считать. Для этого используется теорема Кейли. В этом уроке мы рассмотрим эту теорему и докажем ее. Вы узнаете, что такое биекция, а также умная конструкция.</p>
3
<h2>Теорема Кейли</h2>
3
<h2>Теорема Кейли</h2>
4
<p>Теорема Кейли применяется, чтобы подсчитать количество меченых прямых деревьев. Другими словами, теорема Кейли помогает ответить на вопрос: "Сколько всего существует деревьев на фиксированном множестве вершин множестве V?".</p>
4
<p>Теорема Кейли применяется, чтобы подсчитать количество меченых прямых деревьев. Другими словами, теорема Кейли помогает ответить на вопрос: "Сколько всего существует деревьев на фиксированном множестве вершин множестве V?".</p>
5
<p>При этом характер элементов V не важен. Например, мы можем взять такое выражение:</p>
5
<p>При этом характер элементов V не важен. Например, мы можем взять такое выражение:</p>
6
<p>V = [n] В этом случае ответ будет зависеть не от [n], а только от размера V. Обозначим это число через t(n).</p>
6
<p>V = [n] В этом случае ответ будет зависеть не от [n], а только от размера V. Обозначим это число через t(n).</p>
7
<p>Теперь сгенерируем деревья. Сначала определяем все возможные формы деревьев - то есть немеченые деревья на n вершинах.</p>
7
<p>Теперь сгенерируем деревья. Сначала определяем все возможные формы деревьев - то есть немеченые деревья на n вершинах.</p>
8
<p>Затем найдем все способы присвоить элементам V их метки:</p>
8
<p>Затем найдем все способы присвоить элементам V их метки:</p>
9
<p>В правой части этой схемы мы видим числа 1, 1, 3, 16 и 125. Они равны n^(n-2).</p>
9
<p>В правой части этой схемы мы видим числа 1, 1, 3, 16 и 125. Они равны n^(n-2).</p>
10
<p>Таким образом можно сформулировать теорему Кейли:</p>
10
<p>Таким образом можно сформулировать теорему Кейли:</p>
11
<p>Для всех n верно, что число прямых деревьев на множестве вершин размера n равно n^(n-2)</p>
11
<p>Для всех n верно, что число прямых деревьев на множестве вершин размера n равно n^(n-2)</p>
12
<p>Попробуем доказать эту теорему с помощью биекции.</p>
12
<p>Попробуем доказать эту теорему с помощью биекции.</p>
13
<h3>Доказательство с помощью биекции</h3>
13
<h3>Доказательство с помощью биекции</h3>
14
<p>Код Прюфера - это такой способ кодирования деревьев с n вершинами с помощью последовательности.</p>
14
<p>Код Прюфера - это такой способ кодирования деревьев с n вершинами с помощью последовательности.</p>
15
<p>Чтобы доказать эту теорему, выполним первый шаг:</p>
15
<p>Чтобы доказать эту теорему, выполним первый шаг:</p>
16
<p>Создадим код Прюфера ( y1 , . . . . , yn - 1 ) дерева T на множестве вершин V = [n]</p>
16
<p>Создадим код Прюфера ( y1 , . . . . , yn - 1 ) дерева T на множестве вершин V = [n]</p>
17
<p>Для этого нам нужно рекурсивно определить три последовательности:</p>
17
<p>Для этого нам нужно рекурсивно определить три последовательности:</p>
18
<ul><li>(x1 , . . . . , xn - 1 )</li>
18
<ul><li>(x1 , . . . . , xn - 1 )</li>
19
<li>( y1 , . . . . , yn - 1 ) вершин</li>
19
<li>( y1 , . . . . , yn - 1 ) вершин</li>
20
<li>(T1 , . . . . , Tn - 1 ) деревьев</li>
20
<li>(T1 , . . . . , Tn - 1 ) деревьев</li>
21
</ul><p>Эти последовательности можно определить следующим образом:</p>
21
</ul><p>Эти последовательности можно определить следующим образом:</p>
22
<ul><li>T1 := T</li>
22
<ul><li>T1 := T</li>
23
<li>Для 1 ≤ i ≤ n - 1, пусть xi - вершина степени -1 в Ti с наименьшим индексом</li>
23
<li>Для 1 ≤ i ≤ n - 1, пусть xi - вершина степени -1 в Ti с наименьшим индексом</li>
24
<li>Для 1 ≤ i ≤ n - 1, пусть yi - сосед xi в Ti</li>
24
<li>Для 1 ≤ i ≤ n - 1, пусть yi - сосед xi в Ti</li>
25
<li>Для 1 ≤ i ≤ n-2, пусть Ti + 1 := Ti - xi - дерево, которое получили, когда удалили вершины xi и ребра {xi , yi }</li>
25
<li>Для 1 ≤ i ≤ n-2, пусть Ti + 1 := Ti - xi - дерево, которое получили, когда удалили вершины xi и ребра {xi , yi }</li>
26
</ul><p>Рассмотрим следующее дерево:</p>
26
</ul><p>Рассмотрим следующее дерево:</p>
27
<p>У нас есть две последовательности:</p>
27
<p>У нас есть две последовательности:</p>
28
<ul><li>(x1 , . . . . , x9 ) = (3, 4, 2, 5, 6, 7, 1, 8, 9)</li>
28
<ul><li>(x1 , . . . . , x9 ) = (3, 4, 2, 5, 6, 7, 1, 8, 9)</li>
29
<li>( y1 , . . . . , y9 ) = (2, 2, 1, 1, 7, 1, 10, 10, 10)</li>
29
<li>( y1 , . . . . , y9 ) = (2, 2, 1, 1, 7, 1, 10, 10, 10)</li>
30
</ul><p>Рассмотрим код Прюфера ( y1 , . . . . , yn - 1 ).</p>
30
</ul><p>Рассмотрим код Прюфера ( y1 , . . . . , yn - 1 ).</p>
31
<p>У каждого дерева есть хотя бы две вершины степени 1, поэтому вершина n никогда не будет удалена. Следовательно, yn - 1 = n.</p>
31
<p>У каждого дерева есть хотя бы две вершины степени 1, поэтому вершина n никогда не будет удалена. Следовательно, yn - 1 = n.</p>
32
<p>Выберем k in {1, . . . , n - 2}. Удаляются только вершины степени -1, поэтому степень вершины v в дереве Tk на единицу больше, чем число вхождений v среди ( yk , . . . . , yn-2 ).</p>
32
<p>Выберем k in {1, . . . , n - 2}. Удаляются только вершины степени -1, поэтому степень вершины v в дереве Tk на единицу больше, чем число вхождений v среди ( yk , . . . . , yn-2 ).</p>
33
<p>Получается, вершины степени 1 в Tk - это те вершины, которые не встречаются в этом выражении:</p>
33
<p>Получается, вершины степени 1 в Tk - это те вершины, которые не встречаются в этом выражении:</p>
34
<p>{x1 , . . . . , xk-1 } cup { yk , . . . . , yn-2 }</p>
34
<p>{x1 , . . . . , xk-1 } cup { yk , . . . . , yn-2 }</p>
35
<p>Теперь xk - наименьший элемент из [n], который не входит в множество. Такой элемент всегда существует, и у него не более n - 2 членов.</p>
35
<p>Теперь xk - наименьший элемент из [n], который не входит в множество. Такой элемент всегда существует, и у него не более n - 2 членов.</p>
36
<p>Отсюда следует, что из последовательности ( y1 , . . . . , yn-2 ) можно восстановить:</p>
36
<p>Отсюда следует, что из последовательности ( y1 , . . . . , yn-2 ) можно восстановить:</p>
37
<ul><li>(y1 , . . . . , yn - 1 )</li>
37
<ul><li>(y1 , . . . . , yn - 1 )</li>
38
<li>(x1 , . . . . , xn - 1 )</li>
38
<li>(x1 , . . . . , xn - 1 )</li>
39
</ul><p>Поэтому мы можем восстановить в таком порядке: Tn - 1 , . . . , T1 = T.</p>
39
</ul><p>Поэтому мы можем восстановить в таком порядке: Tn - 1 , . . . , T1 = T.</p>
40
<p>Каждое дерево дает последовательность, с помощью которой можно восстановить уникальное дерево. В этом случае повторное присоединение xk к yk однозначно определено. Поэтому количество последовательностей (y1, . . . ,yn-2) и количество деревьев должны быть равны. Число последовательностей равно n^n-2, так как каждый yi принимает n различных значений.</p>
40
<p>Каждое дерево дает последовательность, с помощью которой можно восстановить уникальное дерево. В этом случае повторное присоединение xk к yk однозначно определено. Поэтому количество последовательностей (y1, . . . ,yn-2) и количество деревьев должны быть равны. Число последовательностей равно n^n-2, так как каждый yi принимает n различных значений.</p>
41
<p>Биекция - это не единственный способ доказательства теоремы Кейли. Еще есть<strong>умная конструкция</strong>, которая помогает в подсчетах более сложных структур. Этот прием встречается все чаще, но пока мы не будем останавливаться на нем подробно из-за объемного и трудоемкого доказательства.</p>
41
<p>Биекция - это не единственный способ доказательства теоремы Кейли. Еще есть<strong>умная конструкция</strong>, которая помогает в подсчетах более сложных структур. Этот прием встречается все чаще, но пока мы не будем останавливаться на нем подробно из-за объемного и трудоемкого доказательства.</p>
42
<h2>Выводы</h2>
42
<h2>Выводы</h2>
43
<p>В этом уроке мы изучили еще один инструмент комбинаторики - теорему Кейли, которая помогает упростить подсчеты и свести их к уже известным объектам.</p>
43
<p>В этом уроке мы изучили еще один инструмент комбинаторики - теорему Кейли, которая помогает упростить подсчеты и свести их к уже известным объектам.</p>
44
<p>Чтобы разобраться в этом теореме, мы познакомились с такими фундаментальными понятиями, как биекция и код Прюфера. Эти термины будут полезны далее в курсе по комбинаторике и в других курсах по дискретной математике.</p>
44
<p>Чтобы разобраться в этом теореме, мы познакомились с такими фундаментальными понятиями, как биекция и код Прюфера. Эти термины будут полезны далее в курсе по комбинаторике и в других курсах по дискретной математике.</p>