- •Основная теорема теории чисел Теорема: 4
- •Алгоритм Ферма
- •Бинарный алгоритм
- •Разложение числа в цепную дробь
- •Вычисление подходящих дробей
- •Диафантовы уравнения
- •Сравнение
- •Арифметика сравнений
- •Функция Эйлера и ее свойства.
- •Теорема Эйлера-Ферма (Малая теорема Ферма)
- •Решение сравнений в первой степени.
- •Теорема: Вильсена
- •Китайская теорема об остатках
- •Многочлены
- •Наибольший общий делитель
- •Алгоритм Евклида для 2-х многочленов
- •Частный случай теоремы 23
- •Приближенная интерполяция
- •Метод наименьших квадратов
- •Полиномиальное кодирование.
- •Коды Шеннона-Фено
- •Алгоритм Хоффмана.
- •Лексикографический порядок
- •Антилексикографический порядок
- •Алгоритм лексикографического порядка
- •Бинарный код Грея
- •Числа Стирлинга первого и второго рода
- •Числа Стирлинга
- •Числа Белла
- •Разбиение чисел
- •Рекуррентное уравнение (Уравнение в конечных разностях)
- •Линейные рекуррентные уравнения порядка k
- •Нахождение частного решения неоднородного уравнения
- •Основы теории графов
- •Связность
- •Алгоритм построения Эйлеровой цепи.
- •Деревья
- •Коциклы
- •Элементы теории вероятности
Полиномиальное кодирование.
a=(a1,a2, … am), ai{0,1} | Z2
Z2 | a=(0,1,1,0,1) x+x2+x4
m+k=n+
g(x)=g0+g1x+…+gkxk
g00, gk0
m=5, k=3
a=(0,1,0,1,1)=x+x3+x4
g(x)=1+x2+x3
a-g=x+x5+x7
(0,1,0,0,0,1,0,1)
mx(x+k)
Правоциркулярная матрица
а.
Теорема: 27
Пусть существует многочлен f(x)Z2 – множество вычетов
(коэффициент из множества Z2, если он делиться на 1+x, тогда у многочлена четно число не нулевых коэффициентов).
Доказательство:
f(x)=f0+f1X+f2X2+…+fkXk
f(x)=(1+x)f1(x)
f(1)=f0+f1+f2+…+fn=0 (1+1=0) => число не нулевых коэффициентов четно.
g(x)=1+x (m,m+1)
Коды Шеннона-Фено
Свойство префикса – никакая кодовая последовательность не является началом другой кодовой последовательности.
Код – беспрефиксный.
P1…Pn – вероятность появления какого-либо символа в последовательности.
0<=p<=1
P1+P2+…+Pn=1
S1, S2, … , Sn – длины кодовых символов.
i=1nPiSi min оптимальный код.
Лемма: беспреффиксные коды.
p1>=p2>=…>=pn S1<=S2<=…<=Sn
Sn=Sn-1.] Sn>Sn-1 _______X
Sn-1 - не может быть другим кодом
Алгоритм Хоффмана.
p1>=p2>=…>=pn Наименьшие встречающиеся слова мы объдиним S1<=S2<=…<=Sn
pn pn-1 - 2 редко встречающихся слова
Получаем n-1 слово и т.д. до тех пор пока не останется 2 слова, которым приписывается 0 или 1
Пример:
{a, b, c, d, e} Известны вероятности появления этих слов в тексте.
0,37(a)
0,22(b)
0,16(c) d,e – самые редко встречающиеся символы, объединем в одно
0,14(d) Появление символов не зависит друг от друга.
0,11(e)
Теперь
0,37(a); 0,22(b); 0,16(c); 0,25(de);
Далее:
0,37(a); 0,38(bс); 0,25(de);
0,62(ade); 0,38(bс);
Кодирование 0 и 1
ade bc
1 Присваиваем правому 0, а левому 1
a de b c
00 01 10 11 Получается беспреффиксный код
d e
010 011
Лексикографический порядок. Генерирование k-элементных подмножеств. Бинарный код Грея.
Лексикографический порядок
{x1, x2,…,xn} - набор каких-либо объектов
{y1, y2,…,yn} - xi, yiX (алфавит)
Можно их сравнить, больше, меньше, равно, не равно
{x1, x2,…,xn} < {y1, y2,…,yn} Набор Х в лексикографическом порядке идет раньше.
Если существует к(1,n) такая, что xi=yi для i<k xk<yk
Пример: словарь из 3-х символов, тогда в словаре 3-х буквенных слов – 6
{1,2,3} {1,3,2} {2,1,3} {2,3,1} {3,1,2} {3,2,1}
Антилексикографический порядок
{x1, x2,…,xn} < {y1, y2,…,yn} Набор Х в лексикографическом порядке идет позже.
Если существует к(1,n) такое, что xi=yi для i>k xk>yk
Алгоритм лексикографического порядка
n – элементное множество задача перебрать все к – элементные подмножества данного множества. (k<n)
Чтобы их не перепутать (не повторять) будем их перебирать в лексикографическом порядке.
Сnk – можно выбрать подмножеств из n
{1..k} – первое множество
…
{a1,a2,…,ak}
{a1,a2,…,ap,ap+1,ap+2,…,ap-k+p+1}
p=max{i|ai<n-k+1}
a[ ] – очередная перестановка
p – переменная которая показывает с какого места мы изменяем
a[i]=i i[1,k]
p=k
while(p>=1)
{
if(a[k]=n) then p:=p-1
else p:=k;
if (p>=1)
{
a[i]:=a[p]+i-p+1;
for (i=k, k-1, … p)
}
}
Пример n=6 {1,2,3,4,5,6}
k=4
{1,2,3,4}, p=4
{1,2,3,5}, p=4
{1,2,3,6}, p=3
{1,2,4,5}, p=4
{1,2,4,6}, p=3
{1,2,5,6}, p=2
{1,3,4,5}, p=4
{1,3,4,6}, p=3
{1,3,5,6}, p=2
{1,4,5,6}, p=1
{2,3,4,5}, p=4
{2,3,4,6}, p=3
{2,3,5,6}, p=2
{2,4,5,6}, p=1
{3,4,5,6}, выход
15 варинантов