
- •Оглавление
- •Глава 5. Основы математической теории информации 58
- •Глава 6. Элементы теории чисел 74
- •6.2.1. Основные определения 83
- •Глава 7. Алгебраические структуры 87
- •Введение
- •Глава 1.Введение
- •1.1.Основные понятия криптографии
- •1.1.1.История развития криптографии
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •1.1.2.Сложность алгоритмов
- •1.1.3.Стойкость криптографических систем
- •Глава 2.Элементы теории множеств
- •2.1.Основные понятия теории множеств
- •2.1.1.Обозначения и способы задания множеств
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •2.1.2.Операции над множествами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •2.1.3.Прямое произведение множеств
- •П римеры решения задач
- •Задачи для самостоятельного решения
- •2.2.Отношения между множествами
- •2.2.1.Определение бинарных отношений
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •2.2.2.Представление бинарных отношений в виде графа, матрицы
- •Примеры решения задач
- •Построенная таблица есть таблица бинарного отношения. Задачи для самостоятельного решения
- •2.2.3.Свойства бинарных отношений, отношение эквивалентности
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Вопросы для повторения
- •Глава 3.Булева алгебра
- •3.1.Булевы функции
- •3.1.1.Понятие булевой функции
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.1.2.Суперпозиция функций
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.1.3.Двойственные функции
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.1.4.Логические схемы
- •Примеры решения задач
- •3.2.Нормальные формы
- •3.2.1.Разложение функций по переменным
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.2.2.Минимизация нормальных форм, карты Карно
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Полиномы Жегалкина, алгоритм их построения для произвольных функций
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.3.Полные системы функций
- •3.3.1.Полнота множества функций
- •Примеры решения задач
- •Глава 4.Элементы теории графов
- •4.1.Основные понятия теории графов
- •4.1.1.Способы задания графов, основные определения
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.2.Числовые характеристики графов
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.3.Операции с графами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.4.Изоморфизм графов
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.6.Расстояния в графе, центры графа
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.7.Эйлеровы циклы
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.8.Алгоритм построения Эйлерова цикла
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.9.Гамильтоновы циклы
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.10.Алгоритм построения гамильтонова цикла в графе
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.2.2.Алгоритм Краскала для построения минимального остовного дерева
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.2.3.Обходы дерева
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Задачи для повторения
- •Вопросы для повторения
- •Глава 5.Основы математической теории информации
- •5.1.Меры информации
- •5.1.1.Мера Хартли
- •Примеры решения задач
- •5.1.2.Мера Шеннона
- •Примеры решения задач
- •5.1.3.Единицы измерения количества информации
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.2.2.Код Хаффмана
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.3. Помехоустойчивое кодирование
- •5.3.1. Код с проверкой на четность
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.3.2.Коды с повторением
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.3.3.Групповой код Хемминга
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.3.4.Помехозащищенность кода
- •Примеры решения задач
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.2.Теорема о делении с остатком. Алгоритм Евклида
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.3.Отношение сравнимости
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.4.Алгебра вычетов
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.5.Решение сравнений вида ахb(mod m)
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.6.Применение алгебры вычетов к простейшим шифрам
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.7.Построение и использование хеш-функций
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Задачи для повторения
- •6.2.Алгебра многочленов
- •6.2.1.Основные определения
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.2.2.Нод многочленов
- •Примеры решения задач
- •Задачи для самостоятельного решения.
- •6.2.3.Разложение многочлена на множители
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Вопросы для повторения
- •Глава 7.Алгебраические структуры
- •7.1.Основные понятия и свойства алгебраических структур
- •7.1.1.Алгебра
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.1.2.Группа
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.1.3.Кольцо
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.1.4.Поле
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.1.5.Конечные поля
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.2.Многочлены над конечными полями
- •7.2.1.Каноническое разложение многочлена
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.2.2.Порядок многочлена над конечным полем
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.2.3.Сравнение многочленов по данному модулю
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.2.4.Поиск неприводимых многочленов поля gf(g(X)) над полем gf(р)
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.3.Генераторы псевдослучайных последовательностей
- •7.3.1.Понятие псевдослучайной последовательности чисел
- •7.3.2.Практические методы получения псевдослучайных чисел
- •Задачи для самостоятельного решения
- •7.3.3.Понятие линейной последовательности
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.3.4. Периодичность линейных рекуррентных последовательностей
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.3.5.Связь линейных рекуррентных последовательностей над конечными полями с многочленами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Вопросы для повторения
- •214018, Г. Смоленск, проспект Гагарина, 56, т.: (0812) 55 – 41 – 04.
Примеры решения задач
Простейший дискретный источник (n=5) описывается схемой:
Даны 5 случайных чисел: 3, 47, 43, 73, 86 для расчета вероятностей этих сообщений. Требуется найти среднюю длину кодового слова этого источника и укрупненного методом Шеннона-Фано.
Решение:
1). Рассчитаем вероятности сообщений:
S=3+47+43+73+86=252;
;
;
;
;
.
2). Кодируем сообщения источника кодом Шеннона-Фано.
а). Выписываем все сообщения в таблицу по степени убывания вероятности:
х5 |
х4 |
х2 |
х3 |
х1 |
0,341 |
0,289 |
0,187 |
0,171 |
0,012 |
б). Разобьём сообщения на две группы равной (насколько это возможно) вероятности. Первой группе присвоим символ 1, второй -0. Затем каждая из групп вновь делится на две подгруппы равной вероятности, которым тоже присваиваются символы 1 и 0. В результате многократного повторения этой процедуры получим таблицу кодовых слов.
х5 |
х4 |
х2 |
х3 |
х1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
|
|
|
1 |
0 |
в). Рассчитаем среднюю длину кодового слова по формуле
.
Вероятности сообщений |
0,341 |
0,289 |
0,187 |
0,171 |
0,012 |
Длина кодовых слов li |
2 |
2 |
2 |
3 |
3 |
P(xi)*li |
0,682 |
0,578 |
0,374 |
0,513 |
0,036 |
lср.=0,682+0,578+0,374+0,513+0,012=2,183.
3). Укрупним сообщения источника, переходя к блокам из двух сообщений по схеме:
|
х5 |
х4 |
х2 |
х3 |
х1 |
х5 |
|
|
|
|
|
х4 |
|
|
|
|
|
х2 |
|
|
|
|
|
х3 |
|
|
|
|
|
х1 |
|
|
|
|
|
Получаем следующую матрицу:
|
0,341 |
0,289 |
0,187 |
0,171 |
0,012 |
0,341 |
0,116281 |
0,098549 |
0,063767 |
0,058311 |
0,004092 |
0,289 |
0,098549 |
0,083521 |
0,054043 |
0,049419 |
0,003468 |
0,187 |
0,063767 |
0,054043 |
0,034969 |
0,031977 |
0,002244 |
0,171 |
0,058311 |
0,049419 |
0,031977 |
0,029241 |
0,002052 |
0,012 |
0,004092 |
0,003468 |
0,002244 |
0,002052 |
0,000144 |
4). Кодируем укрупненные сообщения источника кодом Шеннона-Фано и рассчитаем среднюю длину кодового слова по формуле
.
.
0,11628 |
0,09855 |
0,09855 |
0,08352 |
0,06377 |
0,06377 |
0,05831 |
0,05831 |
0,05404 |
0,05404 |
0,04942 |
0,04942 |
0,03497 |
0,03198 |
0,03198 |
0,02924 |
0,00409 |
0,00409 |
0,00347 |
0,00347 |
0,00224 |
0,00224 |
0,00205 |
0,00205 |
0,00014 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
1 |
0 |
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
Рi
|
0,11628 |
0,09855 |
0,09855 |
0,08352 |
0,06377 |
0,06377 |
0,05831 |
0,05831 |
0,05404 |
0,05404 |
0,04942 |
0,04942 |
0,03497 |
0,03198 |
0,03198 |
0,02924 |
0,00409 |
0,00409 |
0,00347 |
0,00347 |
0,00224 |
0,00224 |
0,00205 |
0,00205 |
0,00014 |
li |
3 |
4 |
4 |
3 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
5 |
5 |
5 |
5 |
6 |
6 |
7 |
8 |
8 |
8 |
8 |
8 |
9 |
9 |
Рi*li
|
0,34884 |
0,3942 |
0,3942 |
0,25056 |
0,25507 |
0,25507 |
0,23324 |
0,23324 |
0,21617 |
0,21617 |
0,19768 |
0,2471 |
0,17485 |
0,15989 |
0,15989 |
0,17545 |
0,02455 |
0,02864 |
0,02774 |
0,02774 |
0,01795 |
0,01795 |
0,01642 |
0,01847 |
0,0013 |
lср.=4,0924/22,046
5). Рассчитаем .
Р(хi) |
0,341 |
0,289 |
0,187 |
0,171 |
0,012 |
Log2 P(xi) |
-1,5521564 |
-1,790859 |
-2,4188898 |
-2,5479318 |
-6,3808218 |
Р(хi) Log2P(xi) |
-0,5292853 |
-0,517558 |
-0,4523324 |
-0,4356963 |
-0,0765699 |
lср.min=-(-2,0114) 2,011.
Видим, что при укрупнении источника средняя длина ближе к минимальной, следовательно, можно сделать вывод, что укрупнение источника уменьшает среднюю длину кодового слова, устремляя её к Н(х).