
- •Оглавление
- •Глава 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.
Задачи для самостоятельного решения
С помощью решета Эратосфена найдите все простые числа от 1 до 50.
Примечание. Данный метод состоит в том, что из ряда чисел последовательно вычеркиваются все числа кратные 2, потом из оставшихся чисел вычеркиваются все числа, кратные 3 и т.д., до заданного числа N.
Представьте каноническое разложение следующих чисел: 18, 255, 467, 899, 7564532, 12345678.
6.1.2.Теорема о делении с остатком. Алгоритм Евклида
Теорема о делении с остатком. Если a и b>0 целые числа, то существуют единственные целые числа q и r такие, что a=bq+r, 0 r<b.
Алгоритм Евклида (алгоритм нахождения НОД(a,b)). Его содержание сводится к последовательному вычислению следующих равенств:
a=bq1+r1, 0<r1<b; b=r1q2+r2, 0<r2<r1; r1=r2q3+r3, 0<r3<r2; … … … … … … … rn-2=rn-1qn+rn, 0<rn<rn-1; rn-1=rnqn+1, rn=НОД(a,b); |
Действие алгоритма прекращается тогда, когда полученный остаток равен нулю; последний ненулевой остаток (rn) равен наибольшему общему делителю. Из алгоритма Евклида следует, что для любых целых чисел а и b всегда существуют числа m и n такие, что НОД(a,b) представляется в виде линейной комбинации этих чисел: НОД(a,b)=rn=ma+nb. |
Кроме того, отношение a/b можно представить в виде цепной дроби:
Теорема. Для того, чтобы уравнение ах+by=c, a,b,cZ было разрешимо необходимо и достаточно, чтобы c делилось на НОД(a,b).
Теорема. Все решения в целых числах уравнения ах+by=c могут быть заданы формулами:
,
где tZ,
а х0, у0 – частное
решение уравнения.
Примеры решения задач
Заданы два числа а=1656 и b=1150. Найдите НОД(a,b), составьте цепную дробь и линейную комбинацию.
Решение. 1656=11501+506,
1150=5062+138,
506=1383+92,
138=921+46,
92=462;
НОД(a,b)=46;
46=138-92=138-(506-1383)=1384-506=
=4(1150-5062)-506=41150-5069=41150-
-9(1656-1150)=131150-91656.
.
Решить уравнения с двумя неизвестными.
а). 24х+16у=7; б). 21х-17у=5
Решение. а). Найдем НОД(24,16)=8. Проверим, делится ли 7 на НОД(24,16). Ясно, что 7 не делится на 8, следовательно, корней нет.
б).
Найдем НОД(21,17)=1, 5
1.
Данное уравнение всегда имеет решения
и их бесконечно много. Составим линейную
комбинацию в виде: НОД(21,17)=21m+17n.
Запишем равенства:
21=171+4
17=44+1.
1=17-44=17-4(21-17)=17-421+417=17(1+4)-421=21(-4)+175. Получили:
21(-4)-17(-5)=1. Умножим его на 5:
21(-20)-17(-25)=5. Т.о., получили частные решения х0=-20 и у0=-25.
Общее решение получим из системы:
.
Задачи для самостоятельного решения
Найдите пары чисел q и r для пар a и b:
123 и 15;
218 и 7;
-8 и 11;
26 и -16;
115 и 8;
12 и 211;
-48 и -23;
-56 и -127.
Поделить с остатком, используя алгоритм Евклида. Если возможно, найдите НОД(a,b), НОК(a,b), составьте цепную дробь и линейную комбинацию.
218 на 43;
57 на 13;
-114 на 32;
93 на –15;
-131 на –17.
846 на 246;
115417 на 56341;
9639 на 9163;
464779 на 15946;
5253 на 4641.
Найти решения уравнений с двумя неизвестными:
а). 6х-7у=3;
б). 8n-12m=4;
в). 3,5х+4,5у=53;
г). 11х+17у=150.
Для перевозки зерна имеются мешки вместимостью 60 и 80 кг. Сколько нужно и тех и других для перевозки 440 кг зерна?
Сколько надо сосудов емкостью по 0,5 и 0,8 литров для разлива 12 литров жидкости?