HTML Diff
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>