- •Основы теории делимости
- •Основная теорема теории чисел Теорема: 4
- •Алгоритм Евклида и цепные дроби.
- •Бинарный алгоритм
- •Разложение числа в цепную дробь
- •Рекуррентная последовательность
- •Вычисление подходящих дробей
- •Диафантовы уравнения
- •Сравнение
- •Арифметика сравнений
- •Функция Эйлера и ее свойства.
- •Теорема Эйлера-Ферма (Малая теорема Ферма)
- •Решение сравнений в первой степени.
- •Теорема: Вильсена
- •Китайская теорема об остатках
- •Многочлены
- •Наибольший общий делитель
- •Алгоритм Евклида для 2-х многочленов
- •Приближенная интерполяция
- •Кодирование с исправлениями (кодирование Хэмминга)
- •Полиномиальное кодирование.
- •Коды Шеннона-Фено
- •Алгоритм Хоффмана.
- •Лексикографический порядок
- •Антилексикографический порядок
- •Алгоритм лексикографического порядка
- •Числа Стирлинга первого и второго рода
- •Числа Белла
- •Бинарный код Грея
- •Числа Стирлинга
- •Разбиение чисел
- •Производящие функции
- •Рекуррентное уравнение (Уравнение в конечных разностях)
- •Линейные рекуррентные уравнения порядка k
- •Нахождение частного решения неоднородного уравнения
- •Основы теории графов
- •Связность
- •Алгоритм построения Эйлеровой цепи.
- •Деревья
- •Коциклы
Алгоритм построения Эйлеровой цепи.
Списки инцидентности.
Каждой вершине сопоставим список, в этом списке все вершины смежные с данным ребром.
[v] VV1V2…
Для изолированной вершины пустой список.
Граф – это массив списков.
[V1]
Для неориентированного графа
ребро (V1,V2)графа вершина вV1
и
[V2] эта же вершинаV2 может быть список списков.
….
[Vn]
Из произвольной вершины идем к смежной и это ребро удаляем и.т.д. т.к. все вершины четные, то мы вернемся в V0 и заносим вершину в маршрут, а из стека удаляем, переходим к следующей вершине в стеке.
Списки инцидентности
S1 SE={} сюда будем заносить вершины, заносим все подряд.
Stack={V}
S2 If Stack – пустStopГраф имеет Эйлерову цепь
S3 else V:=top(stack) – Вытаскиваем верхний элемент
If (SI[V]0)U:=SI[V]; Список инцидентности, не пуст, то вытаскиваем элемент
Del(U,V) в списке дляU удаляемV, а в списке дляVудаляемUи заносим в стек
Если SI[V]=0, тоV SE{} иV удаляем из стека.
Пример:
4
3
5
1 6
8
2
7 9
Список Инцидентности
123
2378
31245
435
53468
65789
72689
82567
967
Stack 1 2,1 3,2,1 1X,3,2,1 4,3,2,1 5,4,3,2,1 3X,5,4,3,2,1 6,5,4,3,2,1
SE 0 0 0 1 1 1 1,3 1,3
Stack 7,6,5,4,3,2,1 2,7,6,5,4,3,2,1 8,2,7,6,5,4,3,2,1 5X,8,2,7,6,5,4,3,2,1
SE 1,3 1,3 1,3 1,3,5
Stack 6,8,2,7,6,5,4,3,2,1 9,6,8,2,7,6,5,4,3,2,1 7,9,6,8,2,7,6,5,4,3,2,1
SE 1,3,5 1,3,5 1,3,5
Удаляем весь стек SE 1,3,5,8,7,9,6,8,2,7,6,5,4,3,2,1
Деревья
Определение:Связанный граф не содержащий циклов называется деревом.
Просто граф не содержащий циклов, называется лесом.

Дерево Лес
Теорема:48
Граф является деревом тогда и только тогда, когда между его двумя вершинами существует одна и только одна цепь.
Доказательство:
Граф – дерево, тогда граф связан и две вершины можно соединить цепью, пусть есть две цепи, тогда из них, можно построить цикл (следствие 2, теорема 43) и наоборот.
Теорема:49
Дерево содержащее не менее двух вершин имеет, по крайней мере 2 концевые вершины (DegV<1).
Доказательство:Рассмотрим максимальную цепь:
a0x1a1x2…xLaL
Докажем, что deg a0 иaL =1
Пусть deg aL>1, тогда из нее есть реброaL+1, xLaL причемaL+1ai, иначе получился бы цикл, это не дерево => максимальная цепь удлиняется, значитdeg aL>1, тоже для а0.
Лемма: После удаления из дерева концевой вершины вместе с ребром получается дерево.

Теорема:50 Дерево с Р вершинами имеет Р-1 ребро.
Доказательство:Индукция поP:
1. P=1 - 0ребер.
2. Индукционный переход Пусть P<=k верно
Докажем для k+1>=2.
Дерево не более двух вершин или 2 концевые вершины (т. 49) по лемме одну концевую вершину убираем, тогда получим,
Для k вершин -k-1ребро
+ +
1 1
k+1 вершин -kребер
Определение:Дерево в графе, которое содержит, все его вершины называется каркасом данного графа (стягивающее дерево, покрывающий граф)
Т.е. ребра, которые надо оставить, чтобы сохранилась связанность.


каркас
Теорема:51 В связанном графе существует по крайней мере 1 каркас.
Доказательство:
Если в связанном графе нет циклов, то это дерево.
Если есть циклы, то удаляем любое ребро из цикла, пока не кончиться цикл.
Пример, построения графа в глубину.
{(V,U)} идет в каркас, мы обойдем все вершины и у нас будет каркас( т.к. не будет циклов), мы не возвращаемся обратно в вершину.

8 9

5 6 7
2 3 4
1
8,5,6,7,4,3,2,1
Т – множество ребер, содержащих каркас.
T={(1,2), (2,3), (3,4), (4,7), (7,6), (6,5), (5,8), (6,9)}
Если граф дерево, то существует 1 каркас, если граф цикл, то – несколько.
Следствие к т.51
1) Граф связан G=(V,E) и есть подмножество реберFE, для любого цикла графаGсуществует хотя бы 1 ребро не лежащее вF, тогда можно построить каркасТ, все ребраFбудут принадлежатьT.T=(V,E`) FE`
Доказательство:
Мы можем удалить ребро из цикла, не принадлежащее F.
2) Связанный граф с Р вершинами и Р-1 ребрами, является деревом.
Доказательство:
Допустим P, P-1, если были бы циклы, то при построении Р вершин, было бы Р ребер, т.е. удаляя 1 ребро получим дерево.
Если связанный граф имеет pвершин иqребер, тоq-p+1 >= 0.
Строя каркас, Р и Р-1 ребер, а в графе больше ребер, чем в каркасе. Следовательно это и будет >= 0.
Определение:Есть произвольный графp – вершин,q – ребер.
k– число компонент связности, тогда говорят, что:=p-k –называется корангом графа.
:=q-p+k – называется цикломатическим числом графа.
p1q1 p2q2 … pkqk
(V1,E1) (V2,E2) … (Vk,Ek)
k – число компонент связности. Тогда для любой компоненты есть коранг и цикломатическое число.
i:=pi –1 =i=1ki
i:=qi-pi+1 =i=1ki
Теорема:52
Для любого графа его >=0, т.к.i=qi-pi+1>=0 (Теорема 51)
G – связанный
G – дерево<=> =0 (необходимый и достаточный признак дерева).
Определение: Пусть есть связанный графP – вершин,q– ребер
G(V,E), T=(V,E) – стягивающее дерево
XE` - ребра из каркаса называются ветвями, которые не вошли хорды.
Если возьмем каркас и к этому каркасу прибавим хорду, то получим цикл. Этот цикл называется главным циклом, определяемым этой хордой.
yE\E` y – хорда
Каждой хорде соответствует главный цикл.
М – главным циклов (сколько хорд)
P – вершин,q – ребер из них вычесть ветви (p-1)
q-(p-1)=
Пример: На главные циклы
x
1,x2,x3,x4,x5
– ветви сy1e y2
циклы: bcedb: y1
y1,y2,y3 – хорды x2 b x3 x4dx5 f defd : y2
ax1 y3 abdfa: y3
Определение:Пусть есть каркас данного графа
Элементарное преобразование дерева. Вводим хорду, получаем цикл, удаляем ветвь, получаем каркас.



