Основы математической логики и криптографии. Практикум в Excel: учебное пособие 9785406122976

Состоит из двух глав. В первой средствами Excel строятся таблицы истинности булевых функций и релейно-контактные схемы,

123 78 26MB

Russian Pages 358 [357] Year 2024

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Основы математической логики и криптографии. Практикум в Excel: учебное пособие
 9785406122976

Table of contents :
Оглавление
Предисловие
Введение
В1. Пользовательские функции
В2. Пользовательские макросы
В3. Надстройка «Поиск решения»
ГЛАВА 1. Применение Excel в математической логике
Часть 1. Построение таблиц истинности в Excel
1.1. Булевы функции двух переменных
Свойства булевых операторов
1.2. Булевы функции трех и более переменных
1.3. Фиктивные и существенные переменные
1.4. Булево дифференцирование
1.5. Контрольные задания
Часть 2. Логические задачи и их решения в Excel
2.1. Алгебра высказываний
2.2. Задачи о принцессах и тиграх
2.3. Задачи о рыцарях и лжецах
2.4. Логические задачи с тремя и более переменными
2.5. Кратчайшие покрытия булевых матриц
2.6. Обобщенная задача о кратчайшем покрытии
2.7. Контрольные задания
Часть 3. Анализ логических выражений и систем в Excel
3.1. Двоичная система счисления
3.2. Логические выражения с неравенствами
3.3. Логические выражения с поразрядной конъюнкцией
3.4. Логические выражения с делением
3.5. Системы логических уравнений
3.6. Контрольные задания
Часть 4. Минимизация нормальных форм в Excel
4.1. Нормальные формы и релейно-контактные схемы
4.2. Минимизация нормальных форм булевых функций
4.3. Частичные булевы функции
4.4. Контрольные задания
Часть 5. Классы поста и связанные с ними функции Excel
5.1. Монотонные булевы функции
5.1.1. Метод перекрестных таблиц истинности
5.1.2. Применение надстройки «Поиск решения»
5.1.3. Пользовательские функции МОНТИ и МОНОМАСС
5.1.4. Пользовательская функция МОНОТОН
5.2. Самодвойственные булевы функции
5.2.1. Основные понятия
5.2.2. Пользовательские функции ДВОЙМАСС и САММАСС
5.2.3. Пользовательские функции ДВОЙСТ и САМОДВ
5.3. Линейные булевы функции
5.3.1. Метод неопределенных коэффициентов
5.3.2. Метод характеристических полиномов
5.3.3. Метод перекрестных таблиц истинности
5.3.4. Применение линейного программирования
5.3.5. Пользовательская функция ЛИНТИ
5.3.6. Пользовательская функция ЛИНЕЙНОСТЬ
5.3.7. Применение функции БПРОИЗ
5.4. Системы булевых функций
5.5. Контрольные задания
ГЛАВА 2. Криптографические функции Excel
Часть 1. Функции Excel для моноалфавитных шифров
1.1. Шифр Цезаря
1.2. Лозунговый шифр
1.3. Шифр Полибия
1.4. Криптосистема RSA
1.5. Контрольные задания
Часть 2. Функции Excel для полиалфавитных шифров
2.1. Шифр Тритемия
2.2. Шифр Белазо
2.3. Шифр Виженера
2.4. Контрольные задания
Часть 3. Функции Excel для задач теории кодирования
3.1. Кодовое расстоя ние
3.2. Код Хэмминга
3.3. Декодирование кода Хэмминга
3.4. Алгоритм Хаффмана
3.5. Контрольные задания
Библиографический список

Citation preview

Б

А

К

А

Л

А

В

Р

И

А

Т

О.А. Сдвижков

основы МАТЕМАТИЧЕСКОЙ nогики

И КРИПТОГРАФИИ Практикум в Excel Рекомендовано Экспертным советом УМО в системе ВО и СПО в качестве учебного пособия для направлений бакалавриата «Математика и компьютерные науки»

BOOK.ru ЧИТАТЬ ONLINE

� КНОРУС • МОСКВА • 2024

УДК 510+004(075.8) ББК 22.12+73+32.81я73 С27 Автор О.А. Сдвижков, Российский государственный университет туризма и сервиса, доц. С27

Сдвижков, Олег Александрович. Основы математической логики и криптографии. Практикум в Excel : учебное пособие/ О.А. Сдвижков. - Москва: КН ОРУС, 2024. - 358 с. (Бакалавриат). ISBN 978-5-406-12297-6 Состоит из двух глав. В первой средствами Excel строятся таблицы истинности булевых функций и релейно-контактные схемы, решаются логические задачи, находятся фиктивные переменные, дифференцируются булевы функции, мини­ мизируются нормальные формы булевых функций, анализируются логические выражения и системы, проверяется принадлежность булевых функций классам Поста. Широко применяются VВА и надстройка . Вторая глава посвящена технологиям Excel, выполняющим автоматически шифрование и де­ шифрование классическими шифрами и кодами. Решения задач средствами Excel пошаговые, содержащие большое число скриншотов элементов, появляющихся на экране монитора в процессе решения задач, что позволяет легко понять технологии решений. Многие задачи решаются несколькими способами, включая непосредственные вычисления. Соответствует ФГОС ВО последнего поколения.

Для студентов бакалавриата математических, информационных и технических специальностей. Будет полезен всем, включая старшеклассников и студентов средних специальных учебных заведений, желающим освоить технологии Excel, посредством которых на компьютере решаются задачи математической логики и криптографии. Ключевые слова: конъюнкция; дизъюнкция; отрицание; булева функция; булево

дифференцирование; высказывание; нормальная форма булевой функции; частичная булева функция; классы Поста; шифр; криптосистема RSA; алфавитное кодирование.

УДК 510+004(075.8) ББК 22.12+73+32.81я73 Сдвижков Олег Александрович

ОСНОВЫ МАТЕМАТИЧЕСКОЙ ЛОГИКИ И КРИПТОГРАФИИ Практикум в Excel Изд. № 687432. Формат 6Ох9О/16. Гарнитура «Newton>>. Усл. печ. л. 22,5. Уч.-изд. л. 19,3. ООО «Издательство «КноРус». 117218, г. Москва, ул. Кедрова, д.14, корп. 2. Тел.: +7 (495) 741-46-28. E-mail: [email protected] www.knorus.ru

Отпечатано в АО «Т8 Издательские Технологии». 109316, г. Москва, Волгоградский проспект, д. 42, корп. 5. Тел.: +7 (495) 221-89-80.

ISBN 978-5-406-12297-6

© Сдвижков О.А., 2024 © ООО > есть ЛОЖЬ, а так как А = ЛОЖЬ, то это утверждение сделал лжец, как и должно быть, значит Условие (А =ЛОЖЬ, В = ЛОЖЬ) = ИСТИНА. Применение надстройки . 1. Диапазон А7:В7 оставляется за независимыми булевыми пере­ менными. 2. В ячейку С7 вводится формула: =МАКС{А7* ( 1-А7) * В7; ( 1-А7) * ( 1-( 1-А7) * В7}) 3. Выделяется ячейка С7, вызывается надстройка и ставится задача, как на рисунке 3.3. 4. Команда возвращает решение, показанное на рисунке 3.13.

о

7

Рис. 3.13. Результаты поиска решения

Проверка сведением задачи к логическому уравнению: -

-

-

A(A·B)V A(A·B)=l {=} A(AV B)=l

{=}

A-B=l.

Ответ: А - лжец, В - лжец. Задача 3.5. Островитянин А встретил островитянина В и заметил: . Кем был островитянин В, рыцарем или лжецом? Технология решения. Высказывание островитянина А записыва­ ется формулой А н В. Поэтому составляется таблица, в которой в ячейку С2 вводится формула = А2= (А2= В2) и копируется в ячейки С3:С5 (рис. 3.14): ..,

С2

1

2 3 4

5

А А

ложь ложь

f"

с

в в

Условие

ИСТИНА

ИСТИНА

ложь

ИСТИНА ложь ИСТИНА ИСТИНА

=А2={А2=В2) D

Е

ложь

ложь

ИСТИНА

Рис. 3.14. Расчетная таблица к задаче 3.5 89

Так как введенная формула принимает значение ИСТИНА толь­ ко при значениях В = ИСТИНА, то В - рыцарь. Проверка сведением задачи к логическому уравнению: А· ( А - В)V А· ( А - В)= 1 {=} A-(A-BVA-B)V A-(A-BVА-В)= -

= A-Bv A(AV B)(AV В)= -

-

= A-BV(A V В)АВ=A-BVAB=(AVА)В=B=l Ответ: В - рыцарь. Задача 3.6. Островитянин А встретил островитянина В и заметил: . Кем был островитя­ нин В, рыцарем или лжецом? Технология решения, аналогичная применяемой в предыдущей задаче, показывает, что В - лжец (рис. 3.15):

1

2 3 4

5

./

т]

С2 А А

ложь ложь

в в

ложь

ИСТИНА

ИСТИНА ложь ИСТИНА ИСТИНА



с

=А2=НЕ(А2=В2) D

Е

Условие

ИСТИНА

ложь

ИСТИНА

ложь

Рис. 3.15. Расчетная таблица к задаче 3.6

Проверка сведением задачи к логическому уравнению:

A-(A-Bv A-B)V A-(A-Bv А-В)= -

= А-(А V В)(АV В)V А-В= -

-

-

= A-B -(AVB)V А-В= A-BVAB=(AV A)B=B=l Ответ: В - лжец. Задача 3. 7. Кем являются островитяне А и В, если по утвержде­ нию А: ? Технология решения. Составляется таблица, в которой формулы ячеек СЗ:С5 получены копированием формулы ячейки С2, показы­ вающая, что А - лжец, В - рыцарь (рис. 3.16): 90

....

С2

в в ложь

А 1

А

fx



ложь 2 3 ложь ИСТИНА 4 ИСТИНА ложь 5 ИСТИНА ИСТИНА

с

=А2=И(НЕ(А2};НЕ(В2}} D

Е

F

Условие

ложь

ИСТИНА

ложь ложь

Рис. 3.16. Расчетная таблица к задаче 3.7

Проверка, сведением задачи к логическому уравнению: -

-

-

A-(A-B)V A-(A-B)=l {=} A-(AV В)=

Ответ: А - лжец, В - рыцарь Задача 3.8. Островитянин А заявил: References открыть диалоговое окно VBAProject, поставить флажок в поле Solver и подтвердить ОК (рис. 5.14):

References - VBAProject ок

AvailaЫe References:

Cancel

� Visual Basic Fог дpplicabons � Microsoft Excel 1S.0 Object LiЬгагу � OLE Automabon � Microsoft Office 15. О ОЬ · ect Librar О Microsoft Forms 2. О Object Library Ref Edit Control 'v'BAProject О AccessibllityCplдdmin 1.0 Туре Library D АсгоЬаt Access 3.0 Туре LiЬгагу



□ □

.

BГO'll'Se,,,

Priority

Help

П дri:nBr Ма­ кросы (Minrows) ----> Выполнить макрос запускается на исполнение, что возвращает в диапазоне Hl:H4 данные, показывающие, что кратчайшее покрытие {1, 2, 4} (рис. 5.15): А 1

2

з

4

ol о о

1

в

,с 1 1

о

1I

о 1 1

о

D

1

о

1 1

Е

о

1

о о

F

G

-1 о

1

о

н

1 1

о 1

Рис. 5.15. Применение макроса Minrows к задаче 5.1

Задача 5.7. Применяя макрос Minrows, найдите кратчайшее по­ крытие матрицы С, заданной в задаче 5.3. 107

Технология решения аналогична применяемой в задаче 5.6 (рис. 5.16): А 1

ol

о о о

2

3

4 5 7

с 1 1 1

1

о о о

1

01

о

6

в

D 1

о о 1

о о о

о о

Е

1

о о о

1

1 1

о о о

о о

F

о о о о о

1

о

н

G 1

о о о о 1 1

oj 1

о 1

о о

oI

1

о 1 1

о о 1

о

J

о о о

к

L

i1

J о

1

1

о о

1 1 1

о

Рис. 5.16. Применение макроса Minrows к задаче 5.3

Полученное покрытие {1, 4, 5, 6} отличается от полученного в за­ даче 5.3, но также является кратчайшим.

2.6. ОБОБЩЕННАЯ ЗАДАЧА О КРАТЧАЙШЕМ ПОКРЫТИИ Задача о кратчайшем покрытии булевой матрицы С обобщается за­ дачей о кратчайшем покрытии с дефектом r булевой матрицы С, со­ стоящей в нахождении минимальной совокупности строк матрицы С, покрывающих не менее п - r столбцов, где rE{0,1,...,n-1}. Понятно, что задача о кратчайшем покрытии булевой матрицы С является за­ дачей о кратчайшем покрытии с дефектом r = О булевой матрицы С. Задача о кратчайшем покрытии с дефектом r булевой матрицы С сводится к задаче дискретного программирования с т двоичными переменными xi (xi = 1, если i-я строка входит в кратчайшее покрытие с дефектом r, иначе xi = О) и п двоичными переменными YJ (yJ = 1, если j-й столбец покрывается строкой из кратчайшего покрытия с дефек­ том r, иначе YJ = О) : Z = I:xi ------, min, (с11 Х1 V .... V ст1 Хт V у1 ) ... (с1 п х1 V .... V Ст п хт V yJ = 1 , i=I

Задача о кратчайшем покрытии с дефектом r булевой матрицы С также сводится к задаче линейного программирования с т + п бу­ левыми переменными xi (xi = 1, если i-я строка входит в кратчайшее покрытие с дефектом r, иначе xi = О) и YJ (yJ = 1, еслиj-й столбец по­ крывается строкой из кратчайшего покрытия с дефектом r, иначе YJ = О): 108

с11х1 +с21Х2 + ... +ст ,х т 2':у1 т

z = �х

�/

i=I

---+

min '

с,2Х1 + С22Х2 + ... + Ст2 Хт 2=: У2

С1п Х1 + С2п Х2 + .. · + Стп Хт 2=: Уп

п- r Задача 6.1. Применяя дискретное программирование, найдите кратчайшее покрытие с дефектом 1 матрицы С, заданной в задаче 5.1. Технология решения. 1. В диапазон Al:F4 вводится матрица С. 2. Диапазон Hl:H4 оставляется за переменными xi и заливается желтым цветом. 3. Диапазон A5:F5 оставляется за переменными yj и заливается желтым цветом. 4. В ячейки A6:F6, по единичным значениям столбцов матрицы С, вводятся формулы: =МАКС{Н4;А5) =MAKC{Hl;H2;H4;B5) =МАКС{НЗ;Н2;С5) =MAKC{Hl;HЗ;H4;D5) =МАКС{Н2;Е5) =MAKC{Hl;FЗ;FS) 5. В ячейки 05 и 07 вводится формулы =CYMM{AS:FS) и =ПРОИЗВЕД(Аб:Fб). 6. В ячейку 15 вводится формула целевой функции =CYMM{Hl:H4) и ставится задача (рис. 6.1): У1 + У2 +... + Уп 2=:

В

Параметры поиска решения

Оптимизиро11ать целе!!ЖЮ функцию:

До:

О Максимум

@ Миниму

Изменяя ячейки переменны х:

-----------�[�_-!

�1s1ss _ _

О lначе ния:

о

1 SHS1:SHS4;SAS5:SFS5

В "оот11етствии с ограничениями.: SASS:SFSS = бинарное SGSS = 1 SGS7 = 1 SHS1:SHS4 = бинарное

Выберите : мет од решения: 1 Эволюционныи поиск ре шения Справка

"'

ба т до ви ь

1

1

0

_ _ ни р �Н-айт - и- е-шее

1

�1 1

1

И3мениrь

Параметры За

кр ыт

ь

1 1

1

Рис. 6.1. Входные данные поиска решения задачи 6.1 109

7. Команда возвращает решение, показанное на рисунке 6.2, кратчайшее покрытие с дефектом 1 состоит из строк 2, 4. А

2

з

4

в

о о о

1

о

1 1 1

5

7

1

1

о 1

с

о 1 1

о о 1

D

1

о 1 1

о

1

Е

о

F

1

G

1

н

1

о о о

о

о о

1

1

1

1

о

1

о

1

21

1

Рис. 6.2. Результаты поиска решения задачи 6.1

Ответ: {2, 4} Задача 6.2. Применяя линейное программирование, найдите кратчайшее покрытие с дефектом 1 матрицы С, заданной в задаче 5.1. Технология решения. Первые три пункта такие же, как в решении задачи 5.2. 4. Ячейки диапазона A5:F5 оставляются за переменными yj (заливаются ячейки желтым цветом). 5. В ячейку G5 вводится формула: =CYMM(AS:FS) 6. В ячейку 15 вводится формула: =CYMM(Hl:H4) 7. Вызывается надстройка и ставится задача (рис. 6.3): Параметры поиска решения

Опти м.пиров.ать целе1111ю функцию: До:

О Максимум

@ Миниму

И�меняя ячейки переменных:

�HS1:$HS4;SASS:SFS5

SISS

О J,начения:



В fоответствии с ограничениями: SASS:SFSS = бинарное SASб:SFSб >=SASS:SFSS SGS5>=5 SHS1:SHS4 =бинарное

]

[о ;., [

�-----� Выберите Г" метод решения: �оис,к решения лин. �адач симплекс.методом

Г

Справка

_J

r

"

[ Найти решение

добавить

И:}МfНИIЬ

Параметры

Закрыть

J

J

j

J

Рис. 6.3. Входные данные поиска решения задачи 6.2

8. Команда = 9 SLS1:SLS7 = бинарное

,,.,

'------'-------------� Выберите оиск решения лин. задач симплекс-методом метод решения; П

L _______ _1 ДО.бавить

_

�-�-"У

I Найти решение 1

Справк,а

-_Параметры -_-_-_-_-_-_-_ 1 Измениrь

1

I

�------

1

Закрыть

1

1

Рис. 6.5. Входные данные поиска решения задачи 6.3

Возвращаемые результаты (рис. 6.6): 1

2

3

4 5

б

7 8

А

о о о о

1

о

1

1 1

с

в 1 1 1

о о о о о r о

D 1

о о 1

о о о 1 1

о о 1

о

1

о о

1 r 1

Е

о о о

о о о о о

1 1

о о 1

2

1 r

н

G 1

о о о о

о

1 1

1 r 1

1

1

о

1

о 1

о о о r

1 1

о

1

о о о

1

о о

1

о о о

1 1

к

L

1 1

1

1

1 1

м

о о о 1

9

о

1

зl

Рис. 6.6. Результаты поиска решения задачи 6.3

Ответ: {4, 5, 6}. 111

Задача 6.4. Применяя линейное программирование, найдите кратчайшее покрытие с дефектом 4 матрицы С, заданной в задаче 5.3. Технология решения. Скриншот решения показан на рисунке 6.7: А 2 3 4 5 б

7

8

о о о о 1

о 1 1 � 1

в

с 1 1 1

о о

о о

о о

D 1

о о 1

о о о 1 � 1

о

о

Е

о о

1

о

1

1 1

о

о

о

о � о

о о 1 1

о о

о о о 1

о

о � о

н

G 1

о

о

о

о

1

1 1

о о о 1 1 1 1

1

о о о 1 � 1

о о 1

о о � о

о о

к

о

1

1

о о 1 1 2

м

о о о о о 1 б

1

2}

Рис. 6. 7. Результаты поиска решения задачи 6.4

Ответ: {4, 7}. Задача 6.5. Создайте макрос Defect, возвращающий по выделен­ ному т х п диапазону, содержащему матрицу С, левая верхняя ячей­ ка которого Al, и величине п - r, введенной в ячейку (1, п + 1), диапазон т х 1, показывающий какие строки входят в кратчайшее покрытие с дефектом r (1 - входит, О - не входит). Технология решения. Открывается стандартный модуль и вводит­ ся код (листинг 6.1). Листинг 6.1. Код макроса Defect Sub Defect () Dim п As Integer, m As Integer m = Selection.Rows.Count n - Selection.Columns.Count Range(Cells(1, п + 2), Cells(m, п + 2)). "Planl" Name Range(Cells(m + 1, 1), Cells(m + 1, n)). "Plan2" Name Cells(m + 1, п + 3).Name "Target" Cells(1, п + 1).Name "Limit" Range("Target").Formula "=Sum(Planl)" Cells(m + 2, п + 1).Name "Under" Range("Under"). Formula "=Sum(Plan2)- Limit" For i 1 То n Range(Cells( 1, i), Cells(m, i)).Name "Column" & i "Bond" & i Cells(m + 1, i).Name 112

Cells(m + 2, i).Formula "=SUMPRODUCT(Column" & i & ",Planl) - Bond" & i & "" Next SolverReset SolverOk SetCell: = "Target", MaxMinVal: =2, ByChange: = "Planl,Plan2", EngineDesc : = "Simplex LP " SolverAdd CellRef: =Range(Cells(m + 2, 1), Cells(m + 2, п + 1)), Relation: = 3, FormulaText: = "0" SolverAdd CellRef: =Range("Under"), Relation: = 3, FormulaText: = "0" SolverAdd CellRef: =Range("Planl"), Relation: = 5, FormulaText: = " бинарное" SolverAdd Cel1Ref: =Range("Plan2"), Relation: = 5, FormulaText: = " бинарное" SolverSolve Range("Planl").Interior.Color 65535 Range(Cells(m + 1, 1), Cells(m + 2, п + 3)).Delete End Sub Задача 6.6. Применяя макрос Defect, найдите кратчайшее покрытие матрицы С, заданной в задаче 5.1. Технология решения. 1. Вызывается книга, содержащая макрос Defect. 2. В диапазон Al:F4 вводится матрица С, в ячейку G 1 вводится 6. 3. Выделяется диапазон Al:F4, командами РАЗРАБОТЧИК----> Ма­ кросы (Defect)----> Выполнить макрос Defect запускается на исполне­ ние, что возвращает сообщение и результаты (рис. 6.8): А 1

2

з

4

о! о о 1

в

с 1 1

о 1

о 1 1

о

D

Е 1

о

1 1

о о

о

1

F 1

о

G

б

1

о

н

о 1 1 1

Рис. 6.8. Нахождение макросом Defect кратчайшего покрытия

Задача 6. 7. Применяя макрос Defect, найдите кратчайшее покры­ тие с дефектом 1 матрицы С, заданной в задаче 5.1. Технология решения аналогична применяемой в предыдущей за­ даче, только в ячейку G 1 вводится 5. Возвращаемые результаты (рис. 6.9): 113

в

А о о

2 3 4

о

1 1

1 о

1

1

1

о о

1

G

F

о

1

о 1

1

о

о

Е

D

н

5

о о

1 о

1 1

Рис. 6.9. Нахождение макросом Defect кратчайшего покрытия с дефектом 1

Задача 6.8. Применяя макрос Defect, найдите кратчайшее покры­ тие с дефектом 1 матрицы С, заданной в задаче 5.3. Технология решения аналогична предыдущим задачам (рис. 6.10): А 2 3 4 5 6 7 _..,_

о

в

О О О 1 О 1

1

1 1 О О О О

с

1

D

О О 1 О О О ___.

о

Е

О 1 О 1 О О

о

F

о'

G

1 О О О О О О О О 1 1 О..___....._ 1

О О 1 1 О О

____________ ______________

н

о! 1 О 1 О О О

о

1 1 О О 1 О

J

о

к

9

О О 1 О О 1

о о 1 1

о 1

______________

о

Рис. 6.10. Нахождение макросом Defect кратчайшего покрытия с дефектом 1

Задача 6.9. Применяя макрос Defect, найдите кратчайшее покры­ тие с дефектом 4 матрицы С, заданной в задаче 5.3. Технология решения. Скриншот решения показан на рисунке 6.11: J I к о о! 2 1 о 1 1 о о 1 з 1 о 1 о 4 о 1 о 1 1 о 1 5 1 о 1 1 о о о о 6 о о о о о о 1 1 о 1 7-1f----'------'----'------'---'----'-----'---'------'---■ о о о 1 о о о о 1 1 А

о о о о

в

с

1

D

1

о о

Е

о о о

F

о о о о о

G

1 о о о о

н

о

б

о о о 1

о о 1

Рис. 6.11. Нахождение макросом Defect кратчайшего покрытия с дефектом 4

2.7. КОНТРОЛЬНЫЕ ЗАДАНИЯ 1. Является ли формула В является логическим следствием фор­ мул Av В и А? Ответ: да (рис. 7.1). 114



Cl

2 3 4

с

в ложь

А

ложь ложь

1

=И(ИЛИ(А1;В1);НЕ(А1}} 20)V(y > 10) принимает значение 1 при любых целых неотрицательных х и у? Технология решения. Если выполнено хотя бы одно из условий х > 20 или у> 10, то А может быть любым целым неотрицательным числом. Однако если эти условия не выполнены, то есть 126

!

х�20 = О SAS2 < = '9

-

А

и

в ть- -доб -а�

ит - - - - - 1�--� И3ме н ь

дел ть пер меjj_ные бв ограни чений неотр ицательными е С а Выберит е методом ОПГ метод решения: П оиск решения нелинейных задач

О

1�

р Сп а вка

v

ре и Найти шен е

П_ ар_ а� _ ,_ ет_ рь 1 _ �_ -�1 �--

1 �l __

ь з_ак _ р_ ьп_ _ _� I

Рис. 2.5. Входные данные поиска решения в задаче 2.3 129

4. Команда 5) V (2х+у< А) принима­ ет значение 1 при любых целых неотрицательных х и у? Технология решения. Применяя надстройку , находится rnax(2x + у) при ограничениях: 2х+3у�18 ! . 3х-у�5

1. За переменными х и у оставляются ячейки Al и А2 соответственно. 2. В ячейки Cl, El, Е2 вводятся формулы =2*Al+A2, =2*А1+З*А2-18,

=З*А1-А2-5.

3. Выделяется ячейка Cl, вызывается надстройка «Поиск реше­ ния>> и ставится задача (рис. 2.7): Параметры поиска решения

Оптимизировать целевую функцию:

До:

@ Мак симум

I

_ 1 _ ______________,__. L_scs

О Миниму О J_начения:

о

Из мен яя ячейки перемен ных:

1 SAS1:SAS2

В fоо тветствии с ограничениями: SAS1:SAS2 = целое SAS1:SAS2 > = О SES1:SES2 < = О

""

О Сделать переме]:j_ные без ограничений неотрицательны ми

Выберите мето д решения: Справка

Поис к решения лин. задач сим плекс-методом

1 __до._ о_ бав _ _ и_ ть___, ....

..,,

Найти решение 1

- р_ам _ ет_ _ ры_� _ � - Па 1 1 1



Зак рыть

- - � -1

Рис. 2.7. Входные данные поиска решения в задаче 2.4 130

4. Команда : 1 _ _ _ _ _ _ _ _ ______________ _ _ _ _ _ _ _ Сделать перемеJ:!ные без ограничений неотрицательными Выберите метод ре шения: Эволюционныи поиск решения

О

1

. � 1 v 11

ДQбав ить

Параметры

Найти реш ение 1 1

Справка

Закрыт ь

Рис. 6.9. Входные данные поиска решения в задаче 6

7. Пусть т & п обозначает поразрядную конъюнкцию чисел т и п. Для какого наименьшего неотрицательного целого числа А фор -­ мула х & 51 +=О--+ (х & А= О--+ х & 25 += О) принимает значение 1 при любом неотрицательном целом значе -­ нии х? Ответ: 34 (рис. 6.10, 6.11). К2 А 1

2

=D $3* О2*2л5 +Е$3* Е2*2л4+F $3*F2*2л 3+G$3*G 2*2л2+Н $3*Н2*2л1+1$3*12*2ло



в

51 110011 25 11001

с

о

1

о

1

1 1

о

о

1

о

G

о о

1

н

1

о

1

Рис. 6.10. Результаты поиска решения задачи 7 150

1 1

о

к

34

ol

Параметры поиска решения

l._s к_ s_z _______________.,_...

Опти мизи роватьцелевую функцию: @ М аксимум

До:

О Ми ниму О Jначения::

о

Из меняя ячейки перемен ных:

1SDSЗ:SISЗ

В �оответствии с ог рани чениями: а з:_ ;_s�0_sз ; _ _би_ н _ _ р н_ о_ е __.t-. ______________

._I�-�-1i

О Сделатьпереме_iiныебез ограничений

неотриц ательными

Выбери те е н ме т од решения: Поиск р шения ли . задач симплекс-методом

lL

_ _ _ _ _ _ _ ., ._l __пар а�,ет рь1 -�

Н й и р ш ни I а т ее е

Справка

дОбавить

l

�_з_а_к_рь_п_ь_�

Рис. 6.11. Входные данные поиска решения в задаче 7

8. Пусть т& п обозначает поразрядную конъюнкцию чисел т и п. Для какого наименьшего неотрицательного целого числа А фор­ мула (х& 56 -:;z= О) /\(х& А -:;z= О) V(x& 32 -:;z= О) принимает значение О при любом неотрицательном целом значе­ нии х? Ответ: 24 (рис. 6.12). К2

с

А

1

;Q $3* D2*2л5+Е$3* Е2 *2л4+F$3*F2*2 л 3+G$3*G 2 *2л 2+Н $3*Н 2•2л1+1 $3* 12*2ло

[r

56 111000 32 100000

1 1 о

о

1

о

о

о

о о

о о

1

1

1

1

о

1

к

н

G

Е

D

24

c=::i!

Рис. 6.12. Результаты поиска решения задачи 8

9. Для какого наименьшего натурального числа А формула (ДЕЛ(х,18) V ДЕЛ(х,27))--, ДЕЛ(х,А) принимает значение 1 при любом натуральном значении перемен­ ной х? Ответ: 54 (рис. 6.13). 151

?

Аргументы функции

нок

Чиать целе�ю функцию: @ Максимум

До:

�1

����I l

S S _E _б____________

о

О Миниму О J_начения:

Изменяя ячейки переменных:

1 SAS6:SCS7



В fоответсrвии с ограничениями:

SAS6:SCS7 = бинарное SCS1:SCS2 = SES1:SES2 SCS4 = SES4

добавить �

Е] [

Выберите 1я метод решения: 1 Эволюционныи по иск решен� Спра ка в

Найти решение [

Параметры Закрыть

[

[ [

Рис. 3.1. Входные данные поиска решения в задаче 3.1 1

А

2

о о

в

о

с

1

1

о

4

1 1

о 1

1

6

1

о

1 1

3

5

о

7

1

D

Е

1

о

1 1

21•

Рис. 3.2. Результаты поиска решения в задаче 3.1

Из данных диапазона А6:С7 следует: f = ((.xv 1)-(yV 0)-1) v ((xV 0)-(yV 1)-1) = xv у. Ответ: xV у. Задача 3.2. Найти минимальную КНФ функции g = (О О - 1). Технология решения аналогична, применяемой в задаче 3.1, только учитывая, что функция g доопределяется функцией f = (х V у)(х V у), в я чейку Е1 вводится формула =MAKC(Al*$А$б;В1*$В$6; $С$б)*МАКС(А1*$А$7;(1-В1)*$В$7; $С$7) Постановка задачи как на рисунке 3.1, только на минимум. Воз­ вращаемые результаты показаны на рисунке 3.3. 1

2

3 4

5

6 7

А

о о 1 1

1

о

в

о

с

1

о о

1

1

о о

о

о

1

D

Е

о о 1 1

11•

Рис. 3.3. Результаты поиска решения в задаче 3.2

Ответ: х. 175

ей:

Задача 3.3. Найти минимальную ДНФ функции g = (10 - 01 - 1). Технология решения. Учитывается, что g доопределяется функци­

f=X·Y,ZVX·Y·ZVX·Y·Z. 1. В диапазон Al:D8 вводится таблица истинности функции g, ячейки D3, D4, D7 пустые. 2. Ячейки Al0:Cl 1 оставляются за переменными a;k 1, ячейки Dl0:Dll оставляются за переменными P;k, ячейки A10:D12 залива­ ются желтым цветом. 3. В ячейке Е13 записывается формула целевой функции: =СУММ(А10:С12) 4. В ячейку Fl вводится формула и копируется в ячейки F2:F8: =МАКС(МАКС((1-А1);$А$10)*МАКС((1-В1);$В$10)*МАКС((1-С1);$С$10) *$D$10;MAKC(A1;$A$11)*MAKC((1-B1);$B$11)*MAKC(C1;$C$11)* $D$11; MAKC(A1;$A$12)*MAKC(B1;$B$12)*MAKC(C1;$C$12)*$D$12) 5. Выделяется ячейка ЕIЗ, вызывается надстройка и ставится задача (рис. 3.4): Параметры поиска решения

Оптимизиров ть целе�ю фун цию: к а

До:

@ Максимум

l._sES _ 3_____________._11]__., _ 1

О Миниму О J,начения:

меняя ячейки пе ременных: Из 1 SAS10:SDS12

о

11)

В 1;оответствии с ограничениями:

SAS10:SDS12 = бинарное I SDS1:SDS2 = SFS1:SFS2 . SDSS;SDSб = SFSS:SFSб �S _D _S8_=_ S_FS_ 8_______________� 1 Выбер ите метод ре шения: 1 Эволюционныи поиск решения р в Сп а ка

В

Н йти реш ение 1 а

ДQбавить

I

Из 1

н ме ить

р метры Па а Зак

рыт ь

1. 1

1

1

Рис. 3.4. Входные данные поиска решения в задаче 3.3

7. Команда возвращает решение, показанное на рисунке 3.5. Откуда следует: f=(xV О)• (у V l)·(ZV 0)-1V(xV 0)-(yVl)·(zV 0)-1 V О= =X·ZVX·Z 176

А

2 3 4

5

б 7 8 9 10 11 12

о о о о

о о

1 1

с

о

1

о

1

о

1

о

о

о о

1 1

о

1

1

о о

1 1 1

о о

1 1

1

1

о

о о

1

F

Е

D

1 1 1 1

1

13

в

1

1

о

1

о

1

1

sl

Рис. 3.5. Результаты поиска решения в задаче 3.3

Проверка с помощью карты Карно (табл. 3.1): Таблица 3.1 xy\z

о

00

1

о

01

1

-

11

-

1

10

о

1

1

Из блоков единичных значений следует: f = х0 z 0 V Х 1 z 1 = Х · Z V Х · Z

Ответ: х · z V х · z . Задача 3.4. Найти минимальную КНФ функции g = (10 - 01 - 1). Технология решения. Учитывается, что g доопределяется функцией: / =(xVyVz)/\(xVyV z).

1. В диапазон Al:C8 вводится таблица истинности функции g, ячейки D3, D4, D7 пустые. 2. Ячейки Al0:Cl 1 оставляются за переменными a;k ;, ячейки D 1 0:D11 оставляются за переменными � ;k , ячейки Al 0:D1lзаливаются желтым цветом. 3. В ячейке Е12 записывается формула целевой функции: =СУММ(А10:С11) 177

4. В ячейку Fl вводится формула: =MAKC(Al*$А$10;В1*$B$10;(1-C1)*$C$10;$D$10)*MAKC((l-A1)*$A$11 ;В1*$В$11;С1*$C$11;$D$11) 5. Формула копируется в ячейки F2:F8; 6. Выделяется ячейка Е12, вызывается надстройка и ставится задача (рис. 3.6 ): ПаRаметры поиска решения Оптимизировать целе8Jlю функцию: До:

О Максимум

@ Миниму

Изменяя ячейки переменных:

'-1

S _ S1 _ _ ____________ E 2

О 2начения:

_.[_�_.'!

о

1 SAS10:SDS11

В �оответствии с ограничениями:

SAS10:SDS11 = бинарное I SDS1:SDS2 = SFS1:SFS2 . SDSS:SDS6 = SFSS:SFS6 ._s_D_S8_=_ S_ FS_ 8__________________,

добавить

1

Выберите метод решения: 1 Эволюционныи поиск решения

[v"J

Изменить

I

Найти реш ение 1

Справка

1

раметр Па ы

Закрыть

1.

1 1

1

Рис. 3.6. Входные данные поиска решения в задаче 3.4

7. Команда возвращает решение, показанное на рисунке 3.7. 10 11 12

1 1

о о

1 1

о о-i---.... 4I .._

____ _

Рис. 3.7. Результаты поиска решения в задаче 3.4

Откуда следует: / =(xVz)(xV z). Проверка с помощью карты Карно (табл. 3.2): xy\z

о

00

1

01

1

11 10 178

о о

Таблица 3.2 1

о о

1 1

1 1

Из блоков нулевых значений следует: 0

1

1

0

f=(х v z )(x v z )=(xvz)(xv z).

Ответ: (х V z)(x V z) . Задача 3.5. Найти минимальную ДНФ функции g = (О - - О - 100 - О - 01 - - 1). Технология решения. 1. В диапазон Al:E16 вводится таблица ис­ тинности, ячейки с неопределенными данными остаются пустые. 2. Ячейки А18:Е20 оставляются за изменяемыми значениями дво­ ичных переменных и заливаются желтым цветом. 3. В ячейку Gl, так как f=X·Y·Z·WVX·Y·Z·WVx•y•z·w, вво­ дится формула: =МАКС(МАКС((1-А1);$А$18)*МАКС(В1;$В$18)*МАКС((1-С1);$С$18)*М AKC(D1;$D$18)*$E$18; МАКС(А1;$А$19) * МАКС(В1;$В$19) * МАКС(( 1C1);$C$19)*MAKC((l-D1);$D$19)*$E$19;MAKC(A1;$A$20)* МАКС(В1;$В$2 0)*MAKC(C1;$C$20)*MAKC(D1;$D$20)*$E$20) 4. Введенная формула копируется в ячейки G2:G 16. 5. В ячейку G 19 вводится формула целевой функции: =CYMM(A18:D20) 6. Выделяется ячейка G 19, вызывается надстройка и ставится задача (рис. 3.8): Параметры поиска решения Оптими3ировать целеВJIЮ функцию: До:

@ Максимум

О Миниму

-_-_-_-_-_-_---��I_OO ....... ��,j

SG _ _ _ _ _ _ S1 _ 9 _ ____ _ - _ - _ -_ � о О Значения: ._ I

1 SAS18:SES20 В �оответствии с ограничениями: SAS18:SES20 = бинарное SES1 = SGS1 SES10 = SGS10 SES1l:SES1З = SGS12:SGS1З SES1 б = SGS1 б SES4 = SGS4 SES6:SES8 = SGS6:SGS8

Выберите метод решения:• 1 Эволюционныи поиск решения

L

Справка

J

1 1 1

ДО.бавить ИзмеНИ!Ь Удалить

BI

Найти решение

Параметры

1L

Закрыть

J

Рис. 3.8. Входные данные поиска решения в задаче 3.5

8. Команда возвращает решение, показанное на рисунке 3.9. 179

18 19 20

о

о о

о

1

1

1

1

1

1

1

1

---·вl

1 1

о

Рис. 3.9. Результаты поиска решения в задаче 3.5

Откуда следует: f = У· zv х- у. Проверка с помощью карты Карно (табл. 3.3): Таблица 3.3 00

01

01

1

1

10

о

о

xy\zw

о

00

о

1

11

11

10

1

1

о о

1

о о

о

о

1

Из блоков единичных значений следует:

z

f = у' z V х' у' = у· Z V х · у . 0

Ответ: У· V Х· у. Задача 3.6. Найти минимальную КНФ функции g = (1 - - 1 - 011 - 1 - 10 - - О). Технология решения аналогична, применяемой в задаче 3.3, толь­ ко, так как f = ( х V у V z V w) (\ ( х V у V z V w) /\ ( х V у V V w)

z

то в ячейку G1 вводится формула: =MA K C ( A 1* $ A $ 18; ( 1 - B 1 } * $ B $ 18; C 1* $ C $ 18; ( 1 - D 1 } * $ D $ 18; $Е$18}* МАКС((1-Al}*$А$19;(1-В1}*$В$19;С1*$С$19;D1*$D$19;$E$19}* М AKC((l-A1}*$A$20;(1-B1)*$B$20;(1-C1}*$C$20;(1-D1)*$D$20;$E$20} В надстройке ставится задача на минимум. Возвращаемые результаты показаны на рисунке 3.10. 18 19 .20

о о

о

1

1

1

1

о о

о о о

о 1

о

Рис. 3.10. Результаты поиска решения в задаче 3.6

Откуда следует: f = (у v z)/\ (х v у). 180

Проверка с помощью карты Карно: Таблица 3.4

00

01

11

11

о о

о о

1

о

о

10

1

1

1

1

xy\zw

00 01

1

1

1

10 1

1

Из блоков нулевых значений следует: 5

f =(/ v z )(x

Ответ: (yV z)(xv у).

1

v /)=(yV z)(xv у).

4.4. КОНТРОЛЬНЫЕ ЗАДАНИЯ 1. Представляя функцию f = х - у совершенной ДНФ, реализо­ вать ее релейно-контактной схемой. Ответ (рис. 4.1):

--------il :_:�11----х

х

у

Рис. 4.1. Схема к задаче 1

2. Представляя функцию f = х - у совершенной КНФ, реали­ зовать ее релейно-контактной схемой. Ответ (рис. 4.2):

х

у

Рис. 4.2. Схема к задаче 2 181

3. Представляя функцию/= (0111) совершенной ДНФ, реализо­ вать ее релейно-контактной схемой. Ответ (рис. 4.3): у

у ------ = о Then h = h Mod 32 p(h) q(i) Else p(h + 32) q(i) End If Next t = ",, 1 То n For i For j о То 31 If р(j) Мid(Слово, i, 1) Then t = t & q(j) Exit For End If Next Next ЦЕЗАРЬ = t End Function Sub InstallFunc() Application. MacroOptions Macro: = "ЦЕЗАРЬ", Description: ="Bыпoлняeт шифрование " & "(дешифрование) шифром Цезаря" End Sub Задача 1.4. Применяя пользовательскую функцию ЦЕЗАРЬ, ре­ шите задачу 1.1. Технология решения. Вызывается функция ЦЕЗАРЬ и вводятся данные задачи 1.1, что возвращает полученный ранее результат (рис. 1.3):

Слооо 1 "ЛЕКЦИЯ" Ключ

?

Арrументы функции

ЦЕЗАРЬ

"ЛЕКЦИЯ"



._Is__________,l_�.....I

=

5

·ркnынд·

Выполняет шифрование (дешифрование) шифром Це3аря,

Значение: РКПЫНД

СпраБка по это�7, функции

ок

11

Отмена

Рис. 1.3. Применение функции ЦЕЗАРЬ к задаче 1.1 268

Задача 1.5. Применяя пользовательскую функцию ЦЕЗАРЬ, ре­ шите задачу 1.2. Технология решения. Вызывается функция ЦЕЗАРЬ и вводятся данные задачи 1.2, что приводит к полученному ранее результату (рис. 1.4): ?

Аргументы функции ЦЕЗАРЬ

[fi]

Слово 1 "РЕФЕРАТ" Ключ

�l-_______ s �l-�_�j

"РЕФЕРАТ" =

-5

"ЛАПАЛЫН" Выпол яет шифров ание [Дешифрование) шифром Це3аря, н Значен ие: ЛАПАЛЫН

Справка по этой Функ

_.11

.___о_к_

ции

Отмена

Рис. 1.4. Применение функции ЦЕЗАРЬ к задаче 1.2

Задача 1.6. Применяя пользовательскую функцию ЦЕЗАРЬ, за­ шифруйте слово КОНСПЕКТ, s = 20. Технология решения. Шифрограмма показана на рисунке 1.5:

ЦЕЗАРЬ

Сло1ю 1 "КОНСПЕК Ключ

?

А [УМенты функции Т

1�1

l'-zo_________.l_�_,�j

Т 'КОНСПЕК 20

"ЮВББГЩЮЖ" Выполняет шифрование [Дешифрование) шифром Цваря. Значе ние: ЮВБЕГЩЮЖ Справка по этой функции

ок

11

Отмена

Рис. 1.5. Применение функции ЦЕЗАРЬ в задаче 1.6

Ответ: ЮВБЕГЩЮЖ. Задача 1.7. Проверьте на слове КОНСПЕКТ, что при s = -12 пользовательская функция ЦЕЗАРЬ возвращает тоже самое слово, что и при s = 20. Технология решения. Вызывается функция ЦЕЗАРЬ и вводятся данные (рис. 1.6): 269

?

Арrументы функции ЦЕЗАРЬ Слово

Кlilюч

1 "КОНСПЕКТ"

1�1 ._l-1_2__________ 1�_=1

"КОНСПЕКТ"

-12

В Выполняет шифрование (дешифрование) шифром Цваря. а - "Ю БЕГЩЮЖ" Зн чение :: ии Справка по этВ ой ок БЕФункц ГЩЮ Ю Ж

1 1

Отмена.

Рис. 1.6. Применение функции ЦЕЗАРЬ в задаче 1.7

Ответ: верно. Пользовательская функция ЦЕЗАРЬ выполняет не только шиф­ рование, но и дешифрование, достаточно взять противоположное значение s. Задача 1.8. Применяя пользовательскую функцию ЦЕЗАРЬ, де­ шифруйте слово РКПЫНД, полученное при s = 5. Технология решения. Вызывается функция ЦЕЗАРЬ, вводятся за­ данное слово и противоположное значение ключа (рис. 1.7): ?

Арrументы функции ЦЕЗАРЬ Слово

1 ·ркпынд·

1�1 l�_=I

Ключ l._-5________.....

·ркпынд· -5

"ЛЕКЦИЯ" Выпопняет шифрование (дешифровани е) ш ифром Цезаря. Значен ие: ЛЕКЦИЯ Справка по это�1 фткции

�_о_к_�I I

О мен т а

Рис. 1.7. Применение функции ЦЕЗАРЬ в задаче 1.9

Ответ: ЛЕКЦИЯ. Задача 1.9. Применяя пользовательскую функцию ЦЕЗАРЬ, де­ шифруйте слово ЛАПАЛЫН, полученное при s = -5. Технология решения. Вызывается функция ЦЕЗАРЬ и вводятся данные (рис. 1.8): 270

?

Аргументы функции ЦВАРЬ Сло·ю 1 "ЛАПАЛЫН"

__.ill_�_�

Ключ ._sl ________

"ЛАПАЛЫН"

=• s.

"РЕФЕРАТ" Выполняет шифрование [Дешифрование] шифром Це3аря, Значен ие: РЕФЕРАТ

I �_о_к_� [

Справка по ·но11 Функции

Отмен а

Рис. 1.8. Применение функции ЦЕЗАРЬ в задаче 1.10

Ответ: РЕФЕРАТ.

1.2. ЛОЗУНГОВЫЙ ШИФР Лозунг (ключ) - легко запоминаемое слово. Лозунговый шифр отличается от шифра Цезаря тем, что алфавит не сдвигается, а пере­ ходит в алфавит, в котором сначала идут буквы лозунга, повторяю­ щиеся буквы отбрасываются, а за ними следуют буквы входного алфавита, не входящие в лозунг. Задача 2.1. Зашифруйте ключом СЕССИЯ слово ЗАЧЕТ. Технология решения. 1. В диапазон Al:AFl вводится входной алфавит. 2. В диапазон A2:D2 вводятся буквы лозунга (повторяющиеся буквы отбрасываются). 3. В диапазон E2:AF2 вводятся буквы алфавита, не входящие в лозунг. 4. В строке 1 находятся буквы шифруемого слова и в строке 3 выписываются их порядковые номера, соответствующие столбцы заливаются желтым цветом (рис. 2.1): t

А В С D Е F G Н I J К L М N О Р Q R S Т U \/ VI/ Х У Z AAABACADAEAF У Ф ХЦЧ ШЩЪ Ы Ь ЭЮЯ А Б В ГДЕ Ж З ИЙК /l М Н ОП Р С

2

С Е И Я А Б В ГДЖ 3 ЙК Л М Н О П Р Т У Ф Х Ц Ч ШЩЪ Ы Ь Э Ю

3

2

4

1

5

3

Рис. 2.1. Вид решения задачи 2.1 271

5. По выделенным данным второй строки в последовательности, заданной в третьей строке, выписывается ответ. Ответ: ГСЦБР. Задача 2.2. Зашифруйте ключом СЕМЕСТР слово КОЛЛОКВИУМ. Технология решения аналогична применяемой в задаче 2.1 (рис. 2.2): А В С D Е F G Н I J К

L М N О Р Q R S Т U V W Х У Z AA ABACADAEAF

1

А Б В ГДЕ Ж З ИЙ К

Л

М Н О

2

С Е М Т Р А Б В Г Д Ж

3

И Й

3

7

8

1 3 10 6 4

П Р С Т У Ф ХЦЧ ШЩЪ Ы Ь ЭЮ Я

К Л Н ОП У Ф ХЦЧ ШЩЪ Ы Ь ЭЮ Я

2 5

9

Рис. 2.2. Вид решения задачи 2.2

Ответ: ЖКЗЗКЖМГУИ. Задача 2.3. Создайте функцию пользователя ЛОЗУНГ (Слово, Ключ), выполняющую шифрование лозунговым шифром. Технология решения. Открывается модуль и вводится код (ли­ стинг 2.1). Листинг 2.1. Код функции ЛОЗУНГ Function ЛОЗУНГ(Слово As String, Ключ As String) As String Dim п As Integer, m As Integer, t As String, q() As String, s As String Dim p(l То 32) As String p(l) "А": р(2) "Б": р(3) "В" р(4) "Е" "Д": р(6) "Г": p(S) р(7) "З": р(9) "И" "Ж": р(8) р(10) "К": р(12) "Й": p(ll) "Л" р(13) "Н": p(lS) "О" "М": р(14) р(16) "Р": р(18) "П": р(17) "С" р(19) "У": р(21) "Ф" "Т": р(20) р(22) "Ц": р(24) "Ч" "Х": р(23) р(25) "Ъ" "Ш": р(26) "Щ": р(27) р(28) "Ь": р(30) "Ы": р(29) "Э" "Ю": р(32) "Я" р(31) n = Len (Слово) m = Len (Ключ) ReDim q(l То 32) s Мid(Ключ, 1, 1) For i 2 То m 272

If InStr(Left(Ключ, i - 1), Mid(Ключ, i, 1)) О Then = s & Мid(Ключ, i, 1) s Else s = s End If Next Ключ = s m = Len(Ключ) For i 1 То m q(i) = Мid(Ключ, i, 1) Next s = о For i 1 То 32 If InStr(Ключ, р(i)) О Then q(m + 1 - s) = p(i) Else s = s + 1 End If Next t = "" For i 1 То n For j 1 То 32 If p(j) Мid(Слово, i, 1) Then t = t & q(j) Exit For End If Next Next ЛОЗУНГ = t End Function Sub InstallFuncl () Application. MacroOptions Macro: = "ЛОЗУНГ", Description: = "Bыпoлняeт шифрование " & "лозунговым шифром" End Sub Задача 2.4. Применяя функцию ЛОЗУНГ, решите задачу 2.1. Технология решения. Вызывается функция ЛОЗУНГ и вводятся данные задачи 2.1, что приводит к результату, полученному ранее (рис. 2.3): 273

ЛОЗУНГ

?

Аргументы функции

1

Слово "ЗАЧЕТ­

Ключ 1 "СЕССИЯ'

�/

1�1

Выполняет шифро8ание лозунговым шифром. Значение: ГСЦБР

"ЗАЧЕТ­ "СЕССИЯ" ТСЦБР"

Справка по ной Функции



ок

1 1 Отмена

-�

Рис. 2.3. Применение функции ЛОЗУНГ к задаче 2.1

Задача 2.5. Применяя функцию ЛОЗУНГ, решите задачу 2.2. Технология решения аналогична применяемой в задаче 2.4 (рис. 2.4): ?

Аргументы функции

ЛОЗ.УНГ Слово 1 ·коллоквиум· Ключ 1 "СЕМЕСТР"



1�,

Выполняет шифрование лозунговым шифром. Значение:• ЖКЗЗКЖМГУИ Спра�;ка по это1':1 функции

·колл ОКВИУМ" "СЕМЕСТР" ·жкззкжмГУи·

I �_о_к_� I

Отмена

Рис. 2.4. Применение функции ЛОЗУНГ к задаче 2.2

Задача 2.6. Создайте функцию пользователя ЛОЗУНГОБР (Шиф­ рограмма, Ключ), выполняющую дешифрование лозунгового шифра. Технология решения. Открывается модуль и вводится код (ли­ стинг 2.2). Листинг 2.2. Код функции ЛОЗУНГОБР

Function ЛОЗУНГОБР(Шифрограмма As String, Ключ As String) As String Dim п As Integer, m As Integer, t As String, q() As String, s As String Dim p(l То 32) As Variant "А": р(2) "В" "Б": р(3) p(l) "Е" "Д": ) "Г": (4) р(б ) р p(S "Ж": "И" "З": ) р(9) р(8 р(7) "К": р(12) "Й": р(11) "Л" р(10) "М": " " ) ) Н": О" 5) 14 (1 (13 р( р р 274

"Р": р(18) "С" "П": р(17) р(16) "Ф" "У": "Т": ) 19) 1) р(20 р(2 р( "Х": р(23) "Ч" "Ц": р(24) р(22) "Ъ" "Ш": р(26) "Щ": р(27) р(25) "Э" "Ь": "Ы": р(30) р(28) р(29) "Ю": р(32) "Я" р(31) n = Len(Шифрограмма) m = Lеn(Ключ) ReDim q(l То m + 32) s Мid(Ключ, 1, 1) For i 2 То m If InStr (Left(Ключ, i - 1), Мid(Ключ, i, 1)) о Then s = s & Мid(Ключ, i, 1) Else s = s End If Next Ключ s = m Lеn(Ключ) For i 1 То m = Мid(Ключ, i, 1) i) q( Next h = О For i 1 То 32 О Then If InStr (Ключ, p(i)) = m h) i + q( p(i) Else h h + 1 End If Next t = "" 1 То n For i For j 1 То 32 Mid(Шифрограмма, i, 1) Then If q(j) t = t & р(j) Exit For End If Next Next ЛОЗУНГОБР = t End Function 275

Sub Instal1Func2 () Application. MacroOptions Macro: ="ЛОЗУНГОБР", Description: = "Bыпoлняeт дешифрование " & "лозунгового шифра" End Sub Задача 2.7. Применяя функцию пользователя ЛОЗУНГОБР, де­ шифруйте ключом СЕССИЯ шифрограмму ГСЦБР. Технология решения. Вызывается функция ЛОЗУНГОБР и вво­ дятся заданные данные (рис. 2.5): ?

Аргументы функции ЛОЗУНГОБР

Шифрограмма 1 -ГСЦБР" Ключ

� �::::::::::: ======�== 1 "СЕССИЯ" �

Выполняет дешифрование лозунгового шифра.

-ГСЦБР"

·сЕссия· "ЗАЧЕТ-

Значение: ЗАЧЕТ

�_о_к_�[ [

Справка по этой Функции

Отмена

Рис. 2.5. Применение функции ЛОЗУНГОБР в задаче 2. 7

Ответ: ЗАЧЕТ. Задача 2.8. Применяя функцию пользователя ЛОЗУНГОБР, де­ шифруйте ключом СЕМЕСТР шифрограмму ЖКЗЗКЖМГУИ. Технология решения. Вызывается функция ЛОЗУНГОБР и вво­ дятся заданные данные (рис. 2.6): ?

Аргументы функции ЛОЗ.УНГОБР

� �=======::::;::: ::: 1 "CEMEGP"

Шифрограмма 1 ·жкззкжмГУи· Ключ

Выполняет дешифрование лозунгового шифра.



·жкззкжмГУи· "CEMEGP"

·коллоквиум·

Значение: КОЛЛОКВИУМ Справка по это�':i Функции

�_о_к_�[ [

Отмена

Рис. 2.6. Применение функции ЛОЗУНГОБР в задаче 2.8

Ответ: КОЛЛОКВИУМ 276

1.3. ШИФР ПОЛИБИЯ Шифр Полибия - замена каждой буквы номерами строки и столбца, в пересечении которых она находится в квадрате Полибия (табл. 3.1). Таблица 3.1 1 2

3 4 5

1

2

в

А F

G

м

L

R

Q V

w

3

с н N

s х

4 D

I,J

о т

у

5 Е

к р

u z

1 1

Задача 3.1. Создайте функцию пользователя ПОЛИБИЙ (Слово), выполняющую шифрование шифром Полибия. Технология решения. Открывается модуль и вводится код (ли­ стинг 3.1). Листинг 3.1. Код функции ПОЛИБИЙ Function ПОЛИБИЙ(Слово As String) As String Dim п As Integer, t As String n = Len(Слово) Dim p(l То 5, 1 То 5) 11с11 11в11: р(1, 3) 11 А 11 p(l, 1) р(1, 2) II 11 11 11 p(l, 4) E D р(1, 5) 11н11 II 11 11 2 ) 2) 2 G11: р(2, 3) F р( , 1 р( , IIK11 11 1 11 р(2, 4) р(2, 5) IIN11 11м11: 11 11 L р(3, 1) р(3, 2) р(3, 3) 11р11 11 0 11 р(3, 4) р(3, 5) : IIR11: 11311 "Q" р(4, 3) р(4, 2) р(4, 1) 11u11 11 11 Т р(4, 4) р(4, 5) 11w11: 11х11 11 11 V р(5, 1) р(5, 2) р(5, 3) 11 У 11 11z11 р(5, 4) р(5, 5) 11 11 t = For k = 1 То n For i 1 То 5 1 То 5 For j If p(i, j) = Mid (Слово, k, 1) Then t = t & Str(i) & Str(j) Exit For Exit For End If :

:

:

:

:

:

:

:

:

277

Next

Next

Next ПОЛИБИЙ = t End Function Sub InstallFuncЗ () Application. MacroOptions Macro: ="ПОЛИБИЙ", Description: = "Bыпoлняeт шифрование " & "шифром Полибия" End Sub Задача 3.2. Применяя пользовательскую функцию ПОЛИБИЙ, зашифруйте слово EXCEL. Технология решения. Вызывается функция ПОЛИБИЙ и вводит­ ся заданное слово (рис. 3.1): ПОЛИБИЙ

?

Арrументы функции

СлоЕЮ 1�·-�_C_EL_· _______�[jll_ �_-

Выполняет шифрование· шифром Полибия.

-�CEL"

"15531315.3 , 1"

Значение: 1 5 5 3 1 .3 1 5 3 1

�_о_к_�l I

Справка по :пой ф1,нкции

Отмена

Рис. 3.1. Применение функции ПОЛИБИЙ в задаче 3.2

Ответ: 1553131531. Задача 3.3. Применяя пользовательскую функцию ПОЛИБИЙ, зашифруйте слово MATHCAD. Технолоmя решения аналогична применяемой в задаче 3.2 (рис. 3.2): ПОЛИБИЙ

?

Арrументы функции

СлоЕЮ 1 ·мдТНСАD" Выполняет шифрование шифром Полибия.

Значение: З 2 1 1 4 4 2 З 1 З 1 1 1 4 : Спра вка по этой Функции

"MATHCAD··

• 3 2 1 1 4 4 2 3 1 З 1 1 1 4·

�_о_к_�I

[отмен;J

Рис. 3.2. Применение функции ПОЛИБИЙ в задаче 3.3

Ответ: 32114423131114. 278

Задача 3.4. Создайте функцию пользователя ПОЛИБИЙОБР (Шифрограмма), выполняющую дешифрование шифрограммы По­ либия. Технология решения. Открывается модуль и вводится код (ли­ стинг 3.2). Листинг 3.2. Код функции ПОЛИБИЙОБР Function ПОЛИБИЙОБР(Шифрограмма As String) As String Dim п As Integer, t As String n = Len(Шифрограмма) Dim p(l То 5, 1 То 5) "А": p(l, 2) "В": p(l, 3) "С" p(l, 1) " " р(1, 4) Е "D": p(l, 5) "Н" "F": р(2, 2) р(2, 1) "G": р(2, 3) р (2, 4) "I": р(2, 5) "К" "N" "L": р(3, 2) р(3, 1) "М": р(3, 3) "О": р(3, 5) "Р" р(3, 4) "Q": р (4, 2) "S" р (4, 1) "R": р(4, 3) U р (4, 4) "Т": р(4, 5) " " "Х" р(5, 1) "V": р(5, 2) "W": р(5, 3) "У": р(5, 5) р(5, 4) "Z" "" t = For k 1 То п / 2 1, 1) Мid(Шифрограмма, 2 * k i Мid(Шифрограмма, 2 * k, 1) j t t & p(i, j) Next ПОЛИБИЙОБР = t End Function Sub Instal1Func 4() Application. MacroOptions Macro: = "ПОЛИБИЙОБР", Description: = "Bыпoлняeт дешифрование " & "шифрограммы Полибия" End Sub Задача 3.5. Применяя пользовательскую функцию ПОЛИБИЙ­ ОБР, дешифруйте шифрограмму 1553131531. Технология решения. Вызывается функция ПОЛИБИЙОБР и вво­ дится заданная шифрограмма (рис. 3.3): 279

?

Аргументы функции ПОЛИБИЙОБР Шифрограмма

._l

·_15_ 531_ _ 31 _ 5_31 _ •______,�� ..... -

Выпо лн яет дешифрование шифрограммы Полибия.

"1553131531" "EXCEL"

Значение: EXCEL

.___о_к__,1 1

Справка по зто�:� Функции

Отм

ена

Рис. 3.3. Применение функции ПОЛИБИЙОБР в задаче 3.5

Ответ: EXCEL. Задача 3.6. Применяя пользовательскую функцию ПОЛИБИЙ­ ОБР, дешифруйте шифрограмму 32114423131114. Технология решения. Вызывается функция ПОЛИБИЙОБР и вво­ дится шифрограмма (рис. 3.4): ?

Аргументы функции ПОЛИБИЙОБР

Шифрограмма 1 "32114423131114"



Выполня ет дешифрование шифрограммы Полибия.

"32 1 14423131114" "MATHCAD"

Значение: MATHCAD

Справка по этой Функции

.___о_к_�l I

Отм

ена

Рис. 3.4. Применение функции ПОЛИБИЙОБР в задаче 3.6

Ответ: МАTHCAD.

1.4. КРИПТОСИСТЕМА RSA Криптосистема RSA - одна из первых криптосистем с открытым ключом [10], основные сведения о ней приведены в пунктах 1-5. 1. Выбираются два простых числа Р, Q и находится их произве­ дение W, называемое модулем. 2. Вычисляется величина L = (Р - l)(Q - 1). 3. В качестве открытого ключа принимается пара (R, W), в кото­ рой 1 < R < L, причем R взаимно просто с L. Шифрование выпол­ няется по формуле: 280

(4.1) С= M R mod W, М - порядковый номер в алфавите шифруемой буквы, С - поряд­ ковый помер буквы, на которую она заменяется. 4. В закрытом ключе (S, W) значение S взаимно просто с L и удовлетворяет уравнению: (R · S) mod L = 1. 5. Дешифрование выполняется по формуле: М = c s mod W. (4.2) Так как R и S являются показателями степеней при шифровании и дешифровании, то далее они называются степенями шифрования и дешифрования. Величины M R и c s, входящих в формулы (4.1, 4.2), могут оказать­ ся настолько большими, что их значения по mod W в Excel не под­ держиваются. Поэтому хУ mod z лучше находить с помощью цикла: v= 1 For k= 1 То у v= v*x mod z Next

Задача 4.1. Создайте функцию пользователя РСА (Модуль, Сте­ пень, Слово), возвращающую RSA шифрограмму заданного слова. Технология решения. Открывается модуль и вводится код (ли­ стинг 4.1). Листинг 4.1. Код функции РСА Function РСА(Модуль As Integer, Степень As Integer, Слово As String) As String Dim п As Integer, m As Integer, h() As Variant, v As Integer, t As String m = Len(Слово) ReDim h(l То m) Dim p(l То 32) As String "В" "А": р(2) "Б": р(3) p(l) "Г": p(S) "Д": р(6) "Е" р(4) "И" "З": "Ж": р(7) р(8) р(9) "Й": р(11) "Л" "К": р(12) р(10) "М": "О" "Н": 4) р(1 р(13) р(15) "С" "П": р(17) "Р": р(18) р(16) "Т": "Ф" "У": ) 1) 9) р(20 р(1 р(2 "Ч" "Х": р(23) "Ц": р(24) р(22) "Ъ" "Ш": "Щ": ) ) ) 25 26 27 р( р( р( "Э" "Ь": р (30) "Ы": р(29) р (28) "Я" "Ю": р(32) р(31) 281

1 То m For i V = 1 1 То 32 For j If М id(Слово, i, 1) = р(j) Then 1 То Степень For k V = V * j Mod Модуль Next h(i) V Exit For End If Next Next ",, t For i 1 То m If h(i) < 10 Then t & " О" & Str(h(i)) t Else t t & Str(h(i)) End If Next РСА = t End FunctionSub InstallFuncll() Application.MacroOptions Macro: = "PCA", Description: = "Возвращает RSA шифрограмму заданного слова" End Sub Задача 4.2. Применяя функцию пользователя РСА, зашифруйте при Р = 2, Q = 11, R = 3 слово МАКРОС. Технология решения. Вызывается функция РСА и вводятся дан­ ные задачи (рис. 4.1): РСА МОдУЛЬ

12.2

� �=======:::;=:::

Сте11е11ь I з

Слово 1 ·мАКРОС





Возвращает RSA шифрограмму з.аданного слова.

Значение:

?

Аргументы функции

1901 11070902

Справка по зтой Функции

2.2

= 3

"МАКРОС

· 1901 11070902·

ок

11

Рис. 4.1. Применение функции РСА в задаче 4.2

Ответ: 190111070902. 282

Отмена

Задача 4.3. Применяя функцию пользователя РСА, зашифруйте при Р = 3, Q = 11, R =7 слово АЛГОРИТМ. Технология решения. Вызывается функция РСА и вводятся дан­ ные задачи (рис. 4.2): ?

нкции

РСА

Модуль 1 3•11



Сrеnень 17

Wil

Слово 1 "АЛГОРИТМ"



Во3вращает RSA шифрограмму 3аданного С/lова.

33

7

·мrоРитм· "0112 162708151307"

Значение: 01121627081513 07 Справка по :этой Функции

ок

JJ

Отмена

Рис. 4.2. Применение функции РСА в задаче 4.3

Ответ: 0112162708151307. Задача 4.4. Применяя функцию пользователя РСА, зашифруйте при Р = 2, Q = 17, R = 11 слово АГАВА. Технология решения. Вызывается функция РСА и вводятся дан­ ные задачи (рис. 4.3): РСА Модуль Сliепен ь

?

Аргументы функции

I з4

1�]

�11======� 1 .1 �:::::::::..,,,I �========;:�

Оlово 1 ·дгдвд·

R!!;I.



Во3вращает RSA шифрограмму з,аданного слова. Значение� О 1 30010701 Справка по •по11 Ф1тк411и

34

11

"АГАВА"

·01 з оо1 0101·

�_o_к_�I

J

Отмена

Рис. 4.3. Применение функции РСА в задаче 4.4

Ответ: 0130010701. Задача 4.5. Создайте функцию пользователя СТОБР (Числоl, Число2, Степень), возвращающую значение степени S, применяе­ мой при дешифровании в криптосистеме RSA. 283

Технология решения. Открывается модуль и вводится код (ли­ стинг 4.2). Листинг 4.2. Код функции СТОБР Function СТОБР (Числоl As Integer, Число2 As Integer, Степень As Integer) As Integer Dim п As Integer, L As Integer n - Числоl * Число2 L 1) * (Число2 1) (Числоl 1 For i 2 То L * h (Степень i) Mod L If h 1 Then i СТОБР Exit For End If Next End Function Sub Instal1Func12 () Application .MacroOptions Масrо: = "СТОБР", Description: = "Boзвpaщaeт значение " & "степени, применяемой при дешифрации" End Sub Задача 4.6. Применяя функцию пользователя СТОБР, найдите по данным задачи 4.2 значение S. Технология решения. Вызывается функция СТОБР и вводятся данные задачи 4.2 (рис. 4.4): ?

Арrументы функции ООБР Чиспо1 1 2

Чиспо2 111

Степень



� � �

2 11 =

з

7 Возвращает значение степени, применяемой при дешифрации. Значение:· 7 Справка по этой Функции

�_о_к_�I I

Отмена

Рис. 4.4. Применение функции СТОБР к данным задачи 4.2

Ответ: 7. 284

Задача 4.7. Применяя функцию пользователя СТОБР, найдите по данным задачи 4.3 значение S. Технология решения аналогичная (рис. 4.5):

Число1 Число2 Степень

?

Арrументы функции

СТОБР



111 17

[�1 � �

3

11 7

3 Возвращает значение степени, применяемой при дешифр.ации. Значение: З

ок

Справка по зтой Функции

1 1

Отмена

Рис. 4.5. Применение функции СТОБР к данным задачи 4.3

Ответ: 3. Задача 4.8. Применяя функцию пользователя СТОБР, найдите по данным задачи 4.4 значение S. Технология решения аналогичная (рис. 4.6):

СТОБР Число1 Число2 Степень

?

Арrументы функции 12

111 111

� � �

2 17 11

3 Возвращает значение степени, применяемой при дешифрации.

Значение: 3

Справка по зтой Функции



1 ок -�

1

Отмена

Рис. 4.6. Применение функции СТОБР к данным задачи 4.4

Ответ: 3. Задача 4.9. Создайте функцию пользователя РСАОБР (Модуль, Степень, Слово), дешифрующую шифрограмму RSA. Технология решения. Открывается модуль и вводится код (ли­ стинг 4.3). 285

Листинг 4.3. Код функции РСАОБР Function РСАОБР(Модуль As Integer, Степень As Integer, Слово As String) As String Dim п As Integer, m As Integer, h() As Variant, v As Integer, t As String m = Len(Слово) ReDim h(l То m / 2) Dim р(1 То 32) As String p(l) "Б": р(3) "В" "А": р(2) "Е" "Д": р(б) "Г": p(S) р(4) "З": р(9) "И" "Ж": р(8) р(7) "Й": p(ll) p(l0) "Л" "К": р(12) "О" "М": р(14) р(13) "Н": р(15) "С" "П": р(17) р(16) "Р": р(18) "Т" "Ф" "У": р(21) : р(20) р(19) "Ц": р(24) "Ч" "Х": р(23) р(22) "Щ": р(27) "Ъ" "Ш": р(26) р(25) "Э" "Ы": р(29) р(28) "Ь": р(30) "Я" "Ю": р(32) р(31) t = "" For i 1 То m / 2 If Мid(Слово, 2 * i "0" Then 1, 1) h(i) Val(Mid(Слово, 2 * i, 1)) Else Val(Mid(Слово, 2 * i h(i) 1, 2)) End If V = 1 For k = 1 То Степень v = v * h(i) Mod Модуль Next t = t & p(Str(v)) Next РСАОБР t End Function Sub Instal1Func13() Application. MacroOptions Macro: = "РСАОБР", Description: = "Дeшифpyeт шифрограмму RSA" End Sub 286

Задача 4.10. Применяя функцию пользователя РСАОБР, дешиф­ руйте ключом (7, 22) шифрограмму 190111070902. Технология решения. Вызывается функция РСАОБР и вводятся данные (рис. 4.7): ?

дR[Ументы ф нкции РСАОБР �

Модупь � Степень [7

22

�- 7

CJI0IIO [-1901110709{)2.

Дешифрует шифрограмму RSA.

��=-'�---' • "1901110709{)2" • 'МАКРОС'

Значение: МАКРОС

ок

Спрае.ка по это�1 Функщш

f[

Отмена

]

Рис. 4.7. Применение функции РСАОБР в задаче 4.10

Ответ: МАКРОС. Задача 4.11. Применяя функцию пользователя РСАОБР, дешиф­ руйте ключом (3, 33) шифрограмму 0112162708151307. Технология решения. Вызывается функция РСАОБР и вводятся данные (рис. 4.8): РСАОБР МОдУЛЬ

33

Степень 3 CJI0IIO

"0112162708151307"

Дешифрует wифроrрамму RSA. Значение:

?

Арrументы функции 33 " 3 � • "0112162708151307' ■ "АЛГОРИТМ-

А Г РИ Л О ТМ

Спраsка по ,той функщн1

ок

м От ен�

Рис. 4.8. Применение функции РСАОБР в задаче 4.11

Ответ: АЛГОРИТМ. Задача 4.12. Применяя функцию пользователя РСАОБР, дешиф­ руйте ключом (3, 34) шифрограмму 0130010701. Технология решения. Вызывается функция РСАОБР и вводятся данные (рис. 4.9): 287

?

Аргументы функции

РСАОБР

МОдУЛЬ

34

Степень

З

Сло�ю [·о, зоо10101 ·

Дtшифруtт шифроrрашtу RSA. Значение: АГАВА

Справка по это11 Функц ш

Отмен�

ок

Рис. 4.9. Применение функции РСАОБР в задаче 4.12

Ответ: АГАВА.

1.5. КОНТРОЛЬНЫЕ ЗАДАНИЯ 1. Применяя пользовательскую функцию ЦЕЗАРЬ, зашифруйте слово КРИПТОГРАФИЯ при s = -8. Ответ (рис. 5.1): ?

Арrументы функции

ЦЕЗАРЬ

Слово 1 "КРИПТОГРАФИЯ"

[�]

"КРИПТОГРАФИЯ"

..З "ВИАЗКЖЫИШМАЧ" Выполняет шифрование [дешифрование) шифром Цез.аря. Ключ

I L

,_8 _ _ _ _ _

_ ._[00) """ .....,

Значение: ВИАЗКЖЫИШМАЧ Справка по этой Функции

ок

11

Отмена

Рис. 5.1. Применение функции ЦЕЗАРЬ в задаче 1

2. Применяя пользовательскую функцию ЦЕЗАРЬ, зашифруйте слово КРИПТОГРАФИЯ при s = 9. Ответ (рис. 5.2): ?

Арrументы функции ЦЕЗАРЬ

[@) 1._9________�1��'."'J

Слово 1 "КРИПТОГРАФИЯ" Ключ

"КРИПТОГРАФИЯ" =

9

·ущсшычмщйэси·

Выполняет шифрование [дешифрование) шифром Цез.аря. Значение: УЩСШЫЧМЩЙЭСИ Справка по этой Функции

�_о_к_�I I

Отмена

Рис. 5.2. Применение функции ЦЕЗАРЬ в задаче 2 288

3. Применяя пользовательскую функцию ЦЕЗАРЬ, дешифруйте шиф­ рограмму ПУТЩКХКТЫНД, полученную при s = 5. Ответ (рис. 5.3):

_ _· ---��� л в � --пУТ_ _ _ _ �- ; С о о l щ кхкт ь 1 нд

Ключ

?

Аргументы функции

ЦЕЗАРЬ

1-s



·пУТщкхктынд·

= -5

к· онФЕРЕнция· Выполняет шифрование [Дешифрование) шифром Цваря.

Значение: КОНФЕРЕНЦИЯ

ок �_ _ _�l I

Справка по этоL1 функции

Отмена

Рис. 5.3. Применение функции ЦЕЗАРЬ в задаче 3

4. Применяя пользовательскую функцию ЦЕЗАРЬ, дешифруйте шифрограмму КБЕИЗАБМЕ, полученную при s = -7. Ответ (рис. 5.4): ЦЕЗАРЬ

Слово 1 ·кБЕИЗАБМЕ-

?

Аргументы функции "КБЕИЗАБМЕ-



Ключ �71 _______�1-�_,j

=

7

·симпозиум· Выполняет шифрование [Дешифрование) шифром Цезаря.

Значение: СИМПОЗИУМ

ок �_ _�l I _

Справка по этой функции

Отмена

Рис. 5.4. Применение функции ЦЕЗАРЬ в задаче 4

5. Применяя пользовательскую функцию ЛОЗУНГ, зашифруйте ключом БОЛОНЬЯ слово БАКАЛАВРИАТ. Ответ (рис. 5.5): ЛОЗУНГ

Слово 1 "БАКАЛАВРИАТ­

Ключ 1"БОЛОНЬЯ"

� �

Выполняет шифрование лозунговым шифром.

Значение·: ОБЕБЖБЛМГБР Справка по этой функции

?

Аргументы функции "БАКАЛАВРИАТ"

ь Б· олоня· ·оБЕБЖБЛМГБР.

ок

1 1

Отмена

Рис. 5.5. Применение функции ЛОЗУНГ в задаче 5

6. Применяя пользовательскую функцию ЛОЗУНГОБР, дешифруйте ключом БОЛОНЬЯ шифрограмму ЗБНГПРМБРСМБ. Ответ (рис. 5.6): 289

Шифрограмма

?

Аргументы функции

ЛОЗУНГОБР

I-зБНГПРМБРСМБ'

Ключ 1 "БОЛОНЬЯ'

[�] �

Выполняет дешифрование лозунгового шифра.

"ЗБНГПРМБРСМБ" "БОЛОНЬЯ' "МАГИGРАТУРА'

Значение: МАГИGРАТУРА

ок

Справка по этой Функции

[ Отмена ]

Рис. 5.6. Применение функции ЛОЗУНГОБР в задаче 6

7. Применяя пользовательскую функцию ПОЛИБИЙ, зашифруй­ те слово MATLAB. Ответ (рис. 5.7): ПОЛИБИЙ Слово

?

Арrументы функции

1 ·мдтLАв·

В ыполняет шифрование шифром Поли бия. Значение: 3 21144 3 11112

'MATLAB' '321144311112'

к ен �-о_ _�l I Отм а

Справка по ,той функц11и

Рис. 5.7. Применение функции ПОЛИБИЙ в задаче 7

8. Применяя пользовательскую функцию ПОЛИБИЙОБР, де­ шифруйте шифрограмму 111313154343. Ответ (рис. 5.8):

Шифрограмма

?

Аргументы функции

ПОЛИБИЙОБР

l._·1_ 1 _13_131_ _ 5 4_ 3 _43_· _____,���

Выполняе т дешифрование шифрограммы Полибия.

Значение: ACCESS

Справка по этой Функщ1и

'1113131543 43'

'ACCESS'

ок

1 1 Отмена

Рис. 5.8. Применение функции ПОЛИБИЙОБР в задаче 8

9. Применяя функцию пользователя СТОБР, найдите закрытый ключ RSA, если Р = 11, Q = 17, R = 13. Ответ (рис. 5.9). 10. Применяя функцию пользователя РСА, зашифруйте ключом (3, 33) слово КОМПЬЮТЕР. Ответ (рис. 5.10). 11. Применяя функцию пользователя РСА, зашифруйте ключом W = 77, R = 13 слово ЛОГИКА. Ответ (рис. 5.11). 290

?

Аргументы функции

СТОБР

Число1 1 11

11



lп Сте11ень lв

�1

Число2

17 13



37 Возвращает значение степени, применяемой при дешифрации. Значение·: 37

ок

Справка по этой Функции

1 [ Отмен

а

]

Рис. 5.9. Применение функции СТОБР в задаче 9 ?

Аргументы функции

РСА MOдYJlb

" 33

33

• з

ffiil • Во111р�щ�tт RS u1111фporpa 1 �уяданноrо слова.

З11.ач�11и�:

110 919040225281829

"kОМПЬЮТЕР' • "1109 19040225.28182:9"

Гок

Рис. 5.10. Применение функции РСА в задаче 10

РСА МОдУЛЬ

Степень Сло во

IП � ::==========;= Iв 1

·лоrИКА"



1�1

Возвращает RSA шифрограмму заданного С11ова.

Значение:

?

Аргументы функции

12 64 53 58 11 О 1

Справка по этой Функции

П



'Л ГИКА" О

• 12 64 53 58 11 О 1 •

�_о_к_�I I

т на О ме

Рис. 5.11. Применение функции РСА в задаче 11

12. Применяя функцию пользователя РСАОБР, дешифруйте клю­ чом W = 77, S =37 шифрограмму 126453581101. Ответ (рис. 5.12). 13. Применяя функцию пользователя РСАОБР, дешифруйте ключом W = 33, S =3 шифрограмму 1520212708070113151101. Ответ (рис. 5.13): 291

?

Аргументы функции РСАОБР

lп

� �======� Степень l з1 [�1 :========== Слово 1 ·126453581101· МодУль



Дешифрует шифрограмму RSA.

п 37 "126453581101" "ЛОГИКА"

Значение': ЛОГИКА

�_о_к_�l I

Справка по этой Функции

Отмена

Рис. 5.12. Применение функции РСАОБР в задаче 12

РСАОБР

lзз � :========�= lз � :========�= Слово 1 "1520212708070113151101. 1�1

МодУль

Степень

Дешифрует шифрограмму RSA. Значение: ИНФОРМАТИКА Справка по этой Функции

?

Аргументы функции 33 3

·1520212708070113151101" ·инФОРМАТИКА"

ок

11

Отмена

Рис. 5.13. Применение функции РСАОБР в задаче 13

Часть 2. ФУНКЦИИ EXCEL ДЛЯ ПОЛИАЛФАВИТНЫХ ШИФРОВ 2.1. ШИФР ТРИТЕМИЯ Таблица Тритемия алфавита L - таблица, в которой алфавит каждой следующей строки получается циклическим сдвигом с ша­ гом 1 алфавита предыдущей строки, до тех пор, пока это не приво­ дит к алфавиту L первой строки (табл. 4.1). Таблица 1.1 А Б в гд Е ж зи Б в гд ЕЖ зи й в гд ЕЖ зи й к гд Е ж зи й к л д Е ж зи й к л м Е ж зи й к л м н

х ц ч ш ш ъ ы ьэ ю я к л м н о п РС т у ф х ц ч IШIШ ъ ы ьэ ю я А л м н о п РС т у ф х ц ч шIШ ъ ы ьэ ю я А Б м н о п РС т у ф х ц ч шIШ ъ ы ьэ ю я А Б в н о п р с т у ф х ц ч ш ш ъ ы ьэ ю я А Б в г о п РС т у ф х ц ч ш ш ъ ы ьэ ю я А Б в гд ж зи й к л м н о п РС т у ф х ц ч ш ш ъ ы ьэ ю я А Б в гд Е зи й к л м н о п РС т у ф х ц ч ш ш ъ ы ьэ ю я А Б в гд Е ж и й к л м н о п РС т у ф х ц ч IШIШ ъ ы ьэ ю я А БВ гд Е ж 3 й к л м н о п РС т у ф х ц ч шIШ ъ ы ь э ю я А БВ гд Е ж зи к л м н о п р с т у ф х ц ч шIШ ъ ы ьэ ю я А Б в гд Е ж зи й л м н о п р с т у ф х ц ч ш ш ъ ы ьэ ю я А БВ гд Е ж зи й к м н о п РС т у ф х ц ч ш ш ъ ы ьэ ю я А БВ гд ЕЖ зи й к л н о п РС т у ф х ц ч ш ш ъ ы ьэ ю я А Б в гд Е ж зи й к л м о п РС т у ф х ц ч IШ ш ъ ы ьэ ю я А Б в гд Е ж зи й к л м н п РС т у ф х ц ч IШIШ ъ ы ьэ ю я А БВ гд ЕЖ зи й к л м н о РС т у ф х ц ч IШIШ ъ ы ь э ю я А БВ гд ЕЖ зи й к л м н о п с т у ф х ц ч шIШ ъ ы ьэ ю я А Б в гд Е ж зи й к л м н о п р т у ф х ц ч ш ш ъ ы ьэ ю я А БВ гд Е ж зи й к л м н о п РС у ф х ц ч ш ш ъ ы ьэ ю я А БВ гд ЕЖ зи й к л м н о п РС т ф х ц ч ш ш ъ ы ьэ ю я А Б в гд Е ж зи й к л м н о п РС т у х ц ч ш ш ъ ы ьэ ю я А Б в гд Е ж зи й к л м н о п РС т у ф ц ч IШIШ ъ ы ьэ ю я А БВ гд ЕЖ зи й к л м н о п р с т у ф х ч шIШ ъ ы ьэ ю я А БВ гд ЕЖ зи й к л м н о п РС т у ф х ц й к л м н о п РС т

у

ф

293

Окончание таюбл. 1.1

шIШ ъ ы ьэ ю я А Б в гд Е ж зи й к л м н о п РС т у ф х ц ч ш ъ ы ьэ ю я А Б В гд Е ж зи й к л м н о п р с т у ф х ц ч ш ъ ы ьэ ю я А Б В гд Е ж зи й к л м н о п РС т у ф х ц ч IШIШ ы ьэ ю я А Б в гд Е ж зи й к л м н о п РС т у ф х ц ч шIШ ъ ьэ ю я А Б в гд Е ж зи й к л м н о п РС т у ф х ц ч шIШ ъ ы э ю я А Б в гд Е ж зи й к л м н о п р с т у ф х ц ч шIШ ъ ы ь ю я А Б в гд Е ж зи й к л м н о п РС т у ф х ц ч ш ш ъ ы ьэ я А Б в гд Е ж зи й к л м н о п РС т у ф х ц ч ш ш ъ ы ьэ ю Шифр Тритемия - каждая буква шифруемого слова, имеющая в нем порядковый номер i, не больший 32, заменяется буквой, сто­ ящей в пересеченииj-rо столбца,} - порядковый номер шифруемой буквы в алфавите l:, и i-й строки табл. 1.1. При i > 32 номер строки определяется как остаток от деления i на 32, если i не делится на 32, иначе номер строки 32. Задача 1.1. Зашифруйте шифром Тритемия слово КНИГА. Технология решения. 1. Так как слово содержит 5 букв, то достаточно ввести в диа­ пазон Al:AF5 первые 5 строк табл. 1.1. 2. В первой стоке Al:AFl отмечаются буквы заданного слова, че­ рез них проводятся столбцы (залиты желтым цветов), до пересече­ ния со строками, номера которых равны порядковым номерам букв в заданном слове (рис. 1.1): А

В С

D Е

1

А

Б

В

Г

2

Б

В

Г

ДЕ

З

В

Г

ДЕ

4

Г

ДЕ

5

'ДЕ

G Н Ж З

Ж 3

Ж З

Ж 3

Ж 3

F

ДЕ

I

J

И Й

И Й

К Л

И Й К Л

И Й К Л

И Й К Л

К

L М N О Р Q R

К Л

М Н О П

М Н О П

М Н О П

М Н О П

М Н О П

Р

Р

Р

Р

Р

С Т У

С Т У

С Т У

С Т У

S Т U V W Х У Z Ад АВ АС AD АЕ AF

С Т

Ф Х

Ф Х

Ф Х

Ф Х

Ф Х

У

ЦЧ

ЦЧ

ЦЧ

Ц '1

ЦЧ

Ш ЩЪ Ы Ь Э

Ш ЩЪ Ы Ь

Ш ЩЪ Ы Ь

Ш ЩЪ Ы Ь

Ш ЩЪ Ы Ь

Э

Э

Э

Э

ЮЯ

ЮЯ А

ЮЯ А

ЮЯ

ЮЯ

Б

А

А Б Б

В

В

Г

Рис. 1.1. Вид решения задачи 1.1

3. Выписываются основания столбцов в порядке увеличения их высот. Ответ: КО:КЖД. Задача 1.2. Зашифруйте шифром Тритемия слово ВЕРОЯТ­ НОСТЬ. Технология решения аналогична применяемой в задаче 1.1 (рис. 1.2): 294

А В С D Е F G Н А Б

В Г

ДЕ

З

2 Б В Г ДЕ З В Г 4 Г

5 ДЕ б Е

Ж З

Ж 3

Ж З

Ж З

7 Ж З 8 З

ДЕ

ДЕ

Ж З

I

J

К L М N О Р Q R 5 Т U V W Х У Z АА АВ АС AD АЕ AF

И Й К Л

И Й К Л

И Й К Л М Н О П

И Й К Л М Н О П

Р

С Т У Ф Х

С Т У Ф Х

М Н О П Р С

И Й К Л М Н О П

И Й К Л М Н О П

И Й К Л

М Н О П Р

И Й К Л М Н О П Р

Ц Ч Ш ЩЪ Ы Ь Э

Ц Ч Ш ЩЪ Ы Ь

ЮЯ

Э ЮЯ А

У Ф Х Ц Ч Ш ЩЪ Ы Ь Э ЮЯ А Б

Р С Т У Ф Х Ц 'Ч Ш ЩЪ Ы Ь Э Ю Я А Б С Т У Ф Х Ц Ч Ш ЩЪ Ы Ь Э Ю Я А Б В

Р С Т У Ф Х

Ц Ч Ш ЩЪ Ы Ь Э ЮЯ А Б

Р С Т У Ф Х Ц Ч

Ш ЩЪ Ы Ь Э Ю Я А Б

М Н О П Р С Т У Ф Х Ц Ч Ш ЩЪ Ы Ь Э Ю Я А Б

9 И Й К Л М Н О П Р С Т У Ф Х 10 Й К Л М Н О П

Р

11 К Л М Н О П Р

С Т У Ф Х Ц Ч

Ц Ч Ш ЩЪ Ы Ь Э

С Т У Ф Х Ц Ч Ш ЩЪ Ы Ь Э

ЮЯ А Б В

ЮЯ А Б

Ш ЩЪ Ы Ь Э Ю Я А Б

В Г

В Г

В

Г

Г Д

В Г ДЕ

В Г ДЕ Г ДЕ Д Е

ДЕ

В

Ж З

Ж З

Ж

Ж 3 И

И Й

Рис. 1.2. Вид решения задачи 1.2

Ответ: ВЖТСГЧУХЩЫЖ. Задача 1.3. Создайте функцию пользователя ТРИТЕМИЙ (Сло­ во), выполняющую шифрование шифром Тритемия. Технология решения. Открывается модуль и вводится код (ли­ стинг 1.1). Листинг 1.1. Код функции ТРИТЕМИЙ

Function ТРИТЕМИЙ(Слово As String) As Dim п As Integer, t As String Dim р(1 То 32) As String р(1) "А": р(2) "Б": р(3) "В" р(4) "Г": р(5) "Д": р(6) "Е" р(7) "ж": р(8) "З": р(9) "И" p(lO) "й": p(ll) "К": р(12) "Л" "О" р(13) "м": р(14) "Н": р(15) р(16) "П": р(17) "Р": р(18) "С" р(19) "Т": р(20) "У": р(21) "Ф" р(22) "Х": р(23) "Ц": р(24) "Ч" р(25) "Ш": р(26) "Щ": р(27) "Ъ" "Э" р(28) "Ы": р(29) "Ь": р(30) р(31) "ю": р(32) "Я" n Lеn(Слово) t For i 1 То n If i > 32 Then i Mod 32 i End If For j 1 То 32

String

295

If р (j) If j Else

Mid (Слово, i, 1) Then + i - 1 > 32 Then t t & р (j + i 33) Exit For

t = t & р (j Exit For End If End If Next

+ i -

1)

Next ТРИТЕМИЙ = t End Function Sub InstallFuncS () Application. MacroOptions Macro: ="ТРИТЕМИЙ", Description: = "Bыпoлняeт шифрование шифром " & "Тритемия" End Sub Задача 1.4. Применяя пользовательскую функцию ТРИТЕМИЙ, решите задачу 1.1. Технология решения. Вызывается функция ТРИТЕМИЙ и вво­ дятся данные задачи 1.1, что приводит к результату, полученному ранее (рис. 1.3): ?

Аргументы функции ТРИТЕМИЙ Сл,ов,о 1 "КНИГА" Выполняет шифрование шифром Тритемия.

·книгд·

·кокжд·

Значение: КОКЖД Справка по зтой Функц1�и

I Отмена � о_к_�I _

Рис. 1.3. Применение функции ТРИТЕМИЙ к задаче 1.1

Задача 1.5. Применяя пользовательскую функцию ТРИТЕМИЙ, решите задачу 1.2. Технология решения. Вызывается функция ТРИТЕМИЙ и вво­ дятся данные задачи 1.2, приводящие к результату, полученному ранее (рис. 1.4): 296

?

Аргументы функции ТРИТЕМИЙ Слово 1 ·вЕРоятноаь· Выполняет шифрование шифром Тритемия.

" ВЕРОЯТНоаь· "ВЖТСГЧУХЩЫЖ"

Значение: ВЖТСГЧУХЩЫЖ Справка по 3той Функции

�_о_к_�[ [

Отмена

Рис. 1.4. Применение функции ТРИТЕМИЙ к задаче 1.2

Задача 1.6. Создайте функцию пользователя ТРИТЕМИЙОБР (Шифрограмма), выполняющую дешифрование шифрограммы Три­ темия. Технология решения. Открывается модуль и вводится код (ли­ стинг 1.2). Листинг 1.2. Код функции ТРИТЕМИЙОБР Function ТРИТЕМИЙОБР(Шифрограмма As String) As String Dim п As Integer, t As String n - Len (Шифрограмма) Dim p(l То 32) As String "Б": р(3) "В" "А": р(2) p(l) "Д": "Г": "Е" ) 4) б) р( р( p(S "Ж": р(8) "З": р(9) "И" р(7) "Л" "Й": "К": р(10) р(11) р(12) "М": р(14) "О" "Н": р(15) р(13) "С" "Р": р(18) "П": р(17) р(16) "У": "Ф" "Т": ) 1) 9) 20 р( р(2 р(1 "Ц": р(24) "Ч" "Х": р(23) р(22) "Ъ" "Ш": "Щ": р(25) р(27) р(26) "Ь": р(30) "Э" "Ы": р(29) р(28) " " " " я ю : р(32) р(31) "" t For i 1 То n If i > 32 Then i i Mod 32 End If For j 1 То 32 297

If p(j) = Мid(Шифрограмма, i, 1) Then If j - i + 1 > О Then t = t & р(j - i + 1) Exit For Else t = t & р(j - i + 33) Exit For End If End If Next Next ТРИТЕМИЙОБР = t End Function Sub Instal1Func6 () Application. MacroOptions Macro: = ТРИТЕМИЙОБР 11 Description: ="Bыпoлняeт дешифрование " & "шифрограммы Тритемия" End Sub Задача 1.7. Применяя пользовательскую функцию ТРИТЕМИЙ­ ОБР, дешифруйте шифрограмму КОКЖД. Технология решения. Вызывается функция ТРИТЕМИЙОБР и вводится шифрограмма КОКЖД (рис. 1.5): 11

,

?

Арrументы функции ТРИТЕМИЙОБР Шифрограмма

�J

·к_окжд _ --'-'-·--------"@ .... � ...

._ l

Выполняет дешифрование шифрограммы Тритемия.

·кокжд· "КНИГА"

Значение: КНИГА Справка по зтой Ф11нкции



ок-�1

1

Отмена

Рис. 1.5. Применение функции ТРИТЕМИЙОБР в задаче 1.7

Ответ: КНИГА Задача 1.8. Применяя пользовательскую функцию ТРИТЕМИЙ­ ОБР, дешифруйте шифрограмму ВЖТСГЧУХЩЫЖ. Технология решения. Вызывается функция ТРИТЕМИЙОБР и вводится шифрограмма ВЖТСГЧУХЩЫЖ (рис. 1.6): 298

?

Арrументы функции ЙОБР ТРИТЕМИ Шифрограмма 1 "ВЖТСГЧУХЩЫЖ"

"ВЖТСГЧУХЩЫЖ"



"ВЕРОЯТНОСТЬ"

Выпо11няет дешифрование шифрограммы Тритемия. Значение: ВЕР ОЯТНОСТЬ

I �_о_к_� I

Справка по этой Функции

Отмена

Рис. 1.6. Применение функции ТРИТЕМИЙОБР в задаче 1.8

Ответ: ВЕРОЯТНОСТЬ

2.2. ШИФР БЕЛАЗО Шифр Белазо - усложненный с помощью буквенного ключа шифр Тритемия. Буквам шифруемого слова периодическим образом присваиваются порядковые номера букв ключа в алфавите L, затем каждая буква шифруемого слова заменяется буквой из i-й строки, i - присвоенный ей номер, и }-го столбца, j - порядковый номер шифруемой буква в алфавите L. Задача 2.1. Применяя шифр Белазо, зашифруйте ключом ДВА слово НЕЗАЧЕТ. Технология решения. Создается таблица (рис. 2.1): А 1

l>, переключатель устанавливается в положе­ ние , что подтверждается ОК. 5. В меню выбирается опция , сортировка в пределах указанного диапазона, что завершает работу с третьим столбцом (рис. 4.1): =

А

в

1

0,31

0,31

2

0,26 0,24

4

0,17

0,19

5

0,02

1

с

D 0,43

0,43

0,26

0,3�

0,57

0,24

0,26

Рис. 4.1. Вид решения после шага 5 335

6. Сортируются по убыванию элементы последнего столбца Dl:D2, его элементам присваиваются значения О и 1, затем выпол­ няется , что приводит (оо вводится как = "00", по­ добным образом вводятся и другие коды, начинающиеся с О) к сле­ дующим результатам (рис. 4.2): в

А

с

Е

D

F

0,31

0,31

0,43

0,57

о

0,26

0,26

0,31

0,43

1

0,26

3

0,24

0,24

4

0,17

0,19

5

0,02

н

G

1

00

00

00

01

01

01

10

10 110 111

11

Рис. 4.2. Вид решения задачи 4.1

Проверка построением кодового дерева, последовательно соеди­ няя пары вершин с наименьшими весами и присваивая, в частно­ сти, левым дугам значения О, правым 1, что приводит к кодам (це­ почкам значений дуг, ведущим из корневой вершины в концевые), которые записаны под начальными значениями (рис. 4.3):

о

1,00

1

о

0,43

1

о

0,19

0,57

.1

о 0.31 00

0.26 01

0.24 10

0.17 110

1 0.02 111

Рис. 4.3. Кодовое дерево к задаче 4.1

Вычисление L показано на рисунке 4.4, в ячейке F9 формула =СУММПРОИЗВ(А7: Е7; А8:Е8}. 7 8

9

0,31

2

0,26

2

0,24

2

0,17 3

0,02 3

-----· --,

....--21 ,19 I

Рис. 4.4. Нахождение минимальной избыточности кода

Ответ: С = {00, 01, 10, 110, 111}, L = 2,19. Задача 4.2. Символы алфавита А принимаются с вероятностями 0,5; 0,2; 0,1; 0,09; 0,08; 0,03. Построить оптимальный двоичный код алфавита А и найти избыточность кода. 336

Технология решения. 1. В диапазон Al :А6 вводятся заданные вероятности. 2. В ячейку В5 вводится формула =АS+Аб и копируется в ячейки С4, D3, Е2. 3. В ячейку Bl вводится формула =Al и копируется во все ячейки, расположенные выше заполненных. 4. Выделяется и копируется диапазон Bl:B5, через контекстное меню вызывается инструмент «Специальная вставка>>, переключатель устанавливается в положение , что подтверждается ОК. 5. В меню «Сортировка и фильтр>> выбирается опция «Сортиров­ ка по убыванию>>, сортировка в пределах указанного диапазона за­ вершает работу с вторым столбцом (рис. 4.5): А в с D Е 0,5 0,2 0,1 0,09 0,08 0,03

1

3 4

5 6

0,5 0,2 0,11 0,1'9

0,5 0,2

0,11 0,1

0,5 0,2 0,3

0,5 0,5

0,09

Рис. 4.5. Вид решения после шага 5

6. По аналогии с пунктами 4, 5 сортируются по убыванию эле­ менты остальных столбцов (рис. 4.6):

в

А

1 2 3

0,5 0,2 0,1 0,09 0,08 0,03

4 5 6

с

D 0,5 0,2 0,19 0,11

0,5 0,2 0,11 0,1 0,09

Е 0,5 0,5

0,5 0,3 0,2

Рис. 4.6. Вид решения после сортировки всех столбцов

7. Выполнение дает (рис. 4.7):

2

3 4

5 6

А

в

с

0,5 0,2 0,1 0,09 0,08 0,03

0,5 0,2 0,11 0,1 0,09

0,5 0,2 0,19 0,11

D 0,5 0,3 0,2

Е

0,5 0,5

F

G

о 1

н

о

10 11

о

11 100 101

о

11 101 1000 1001

к

о

11 1000 1001 1010 1011

Рис. 4.7. Вид решения задачи 4.2 337

Проверка, построением кодового дерева (рис. 4.8): 1,00

о

1

о

0,2 11

о

0,30

0,19

о 0,5

о

0,50

1

0,1 1000

1

1 0,11

о 0,08 1010

0,09 1001

1 0,03 1011

Рис. 4.8. Кодовое дерево к задаче 4.2

Вычисление L показано на рисунке 4.9, в ячейке G 10 формула =СУММПРОИЗВ(А8:F8; A9:F9). 0,5 1

8 9 10

0,2 2

0,1 4

0,09 4

0,08 4

0,03 4

Рис. 4.9. Вычисление минимальной избыточности кода

Ответ: С = {1, 11, 1001, 1000, 10000, 10001}, L = 2,1. Задача 4.3. Закодировать кодом Хаффмана слово МАТЕМАТИКА. Технология решения. Алфавит для записи слова МАТЕМАТИКА состоит из букв А, М, Т, Е, И, К, частоты которых 3, 2, 2, 1, 1, 1. Ввод частот в диапазон Al :Аб и применение технологии решения предыдущей задачи приводят к следующим результатам (рис. 4.10): 3 2 2 2 1

3

2

2 2 1 1 1

3

4 5 6

с

в

А

Е

D

F

3

4

б

3

3

4

2 2

3

G

о

1

н

1

1 00 01

00 01 10 11

J

к

00 10 11 010 011

00 10 11 011 0100 0101

L А

м

т Е

и

к

Рис. 4.10. Вид решения задачи 4.3

Кодирование (рис. 4.11): 8 9

м

т

А

10

()О

Е

11

011

м

А

10

00

т

11

Рис. 4.11. Результаты кодирования

Ответ: 1000110111000110100010100. 338

и

0100

1
= h(m j) Then 1) q(i + 1, m - j) q(i, m - j End If q(h(m j) & 1) q(j + 1, m j), m j q(h(m j j), m j) & 1) q(j + 2, m Next Next 11011

11111

342

11

о

11

11

1

11

For i 1 То m q(i, 1) c(i) Next ХАФФМАН с End Function Sub InstallFunc() Application. MacroOptions Macro: ="ХАФФМАН", Description: = "Boзвpaщaeт по вероятностям " "(частотам) код Хаффмана" End Sub

&

Задача 4.9. Применяя пользовательскую функцию ХАФФМАН, найдите оптимальный двоичный код по данным задачи 4.1. Технология решения. Выделяется диапазон 1 х 5, например, Al:A5, вызывается функция ХАФФМАН и вводятся данные задачи 4.1 (рис. 4.15): ?

Аргументы функции ХдффМАН

1�1

Верожности 1 {0,31;0,26;0,24;0, 17;0,02}

= {О,31;0,26;0,24;0, 17;0,02} =

гоо ·;·о1·;·1о ·;·11 о ·;·11 1·1

Возвращает по вероятностям (частотам) код Хаффмана. Значение': О О

�_о_к_�I I

Справка по этой Функции

Отмена

Рис. 4.15. Применение функции ХАФФМАН в задаче 4.9

Команда Ctrl+Shift+ Ввод вставляет полученный массив в выде­ ленный диапазон (рис. 4.16): А]



{ =ХАФФМАН( (0,31;0,26;0,24;0,П;О,02})}

-------о -------�----о--=-------о ---.._____

, 10 о

-L-.

fx

А

1

В

1

С

11

D

Е

11 1

1

F

G

Рис. 4.16. Возвращаемые результаты в задаче 4.9

Задача 4.10. Применяя пользовательскую функцию ХАФФМАН, найдите оптимальный двоичный код по данным задачи 4.2. Технология решения аналогична применяемой в задаче 4.9 (рис. 4.17, 4.18): 343

?

Аргументы функции ХАФ:t>МАН {О,5;02 ; ,09;0,08;0,03} , ;0,10 � =

; ,08;0,03) Вероятности 1 {О,50 ; ,20 ; ,1;0,090

= {"0';"11 ';'1 О О О · ·; 1 О О 1 ·;·1 О

Возвраща ет по вероятностям [частотам) код Хаффмана. Значение: О

�_о_к_�I \

Справка по это1� Функции

ена Отм

Рис. 4.17. Применение функции ХАФФМАН в задаче 4.10 Al

fx

А

с

8

{ =ХАФФМАН( {0,5;0,2;0,1;0,09;0,0S;0,03}}}

D

Е

F

_1 1___ .._1__ 1 .....___,_1____ 0 ___ 0 ___, 0 __1 __0 ___ 0 1 --:,__ 1 __ о____ 1 ____ 0 ...__ 1 ____ 0 1 _1_! � 0

G

Рис. 4.18. Возвращаемые результаты в задаче 4.10

Задача 4.11. Применяя пользовательскую функцию ХАФФМАН, найдите оптимальный двоичный код по данным задачи 4.3. Технология решения также аналогична, применяемой в задаче 4.9 (рис. 4.19, 4.20): ?

Аргументы функции ХАФ:t>МАН = {3;2:;2;11 ; ;1} Вероя,;ности ����-----�1 {3;2;2:;1;11 ; ) �

= гоо ·;·1 о ·;·11·;·Q 1 1 ·;·о1 Возвращает по вероятностям [частотам] код Хаффм ана,

о о·

Значение: 00

�_о_к_�l I

Справка по этой Функции

Отм

Рис. 4.19. Применение функции ХАФФМАН в задаче 4.11

...

Al 1

А

fx

8

С

{ =ХАФФМАН({З;2;2;1;1;1}}}

D

Е

F

1

l o o [1 _0 ___1_1 ___ _ 0 1 _1 ___]_0 _1 _0_ _ 0 -0__ 1 0_ _ 1 ! _1 � __ ___ Рис. 4.20. Возвращаемые результаты в задаче 4.11 344

ена

Задача 4.12. Создайте макрос Decohuff, декодирующий в пятой строке, по введенным в первую и вторую строку, начиная с ячеек Al и А2, алфавиту и его коду Хаффмана, код сообщения, заданный в ячейке АЗ. Технология решения. Открывается модуль и вводится код (ли­ стинг 4.3). Листинг 4.3. Код макроса Decohuff Sub Decohuff() Dim п As Integer, а() As String, с() As String, Ь () As Variant, d As String n = Selection .Columns .Count ReDim а(1 То n) ReDim c(l То n) ReDim Ь (1 То n) For i = 1 То n а(i) Cells(1, i).Value с(i) Cells(2, i) .Value Next d = Cells(3, 1) .Value k = 1 Linel: For i = 1 То n s = о If Left(d, Len(c(i))) = с(i) Then If k > п Then ReDim Ь (1 То k) b(k) = a(i) Cells(S, k).Value = b(k) k = k + 1: s = 1 1) d = Replace(d, с(i), "" ' Exit For End If Next If Len(d) > О And s = 1 Then GoTo Linel End Sub Задача 4.13. Применяя макрос Decohuff, декодируйте код сооб­ щения 11011110010010111, если А = {1, 2, 3, 4, 5}, С = {00, 01, 10, 110, 111}. Технология решения. 1. В ячейки диапазона Al:El вводятся сим­ волы алфавита А. 2. В ячейки диапазона А2:Е2 вводятся кодовые слова в виде ="00" и так далее. 345

3. В ячейке АЗ записывается код сообщения: ="11О1111001001О111". 4. Выделяется диапазон Al:El и макрос Decohuff запускается на исполнение, что возвращает в диапазоне A5:G5 декодированное сообщение (рис. 4.21):

в

А 1[

1

00

с

1

D

2!

3

5

3

01 10 3 11011110010010111

Е

F

G

5

4

111

110

4

4

5

1

2

5

3

Рис. 4.21. Применение макроса Decohuffв задаче 4.13

Ответ: 4532135. Задача 4.14. Применяя макрос Decohuff, декодируйте код сообще­ ния 10111001101010000111000, если А= {1, 2, 3, 4, 5, 6}, С = {О, 11, 1000, 1001, 1010, 1011}. Технология решения аналогична применяемой в предыдущей за­ даче, она приводит к следующим результатам (рис. 4.22):

в

А 1

с

D

2 11 1000 3 10111001101010000111000

3

5

5

о

Е

F

4 1001

G

5 1010

1011

4

4

6

1

3

2

3

Рис. 4.22. Применение макроса Decohuffв задаче 4.14

Ответ: 6453123. Задача 4.15. Применяя макрос Decohuff, декодируйте код сооб­ щения 1000110111000110100010100, если А= {А, М, Т, Е, И, К}, С = {00, 10, 11, 011, 0100, 0101}. Технология решения. Скриншот решения показан на рисунке 4.23: в

А 1

д

м

с т

D

F

Е

и

к

011

0100

0101

Е

м

А

н

G

....:. -1,:...;_______....:...._-ааа!ааа--=""""'�-"'""'----"аааа;;;;�-,■ 2 00 10 11 3 1000110111000110100010100 4 5

М

А

т

т

и

к

Рис. 4.23. Применение макроса Decohuffв задаче 4.15

Ответ: МАТЕМАТИКА. 346

А

Задача 4.16. Создайте пользовательскую функцию ДЕХАФ (Ал­ фавит, Код, Сообщение), восстанавливающую сообщение, кодиро­ ванное кодом Хаффмана. Технология решения. Открывается модуль и вводится код (ли­ стинг 4.4). Листинг 4.4. Код функции ДЕХАФ Function ДЕХАФ(Алфавит As String, Код() As Variant, Сообщение As String) As String Dim п As Integer, Ь As String, d As Variant n = Len(Алфавит) Сообщение d "" ь k 1 Linel: For i 1 То n s = о If Left(d, Len(Koд(i))) Код(i) Then Ь Ь & Mid(Алфавит, i, 1) k k + 1: s = 1 1) Replace(d, Код(i), "", d Exit For End If Next 1 Then GoTo Linel If Len(d) > О And s = ДЕХАФ Ь End Function Sub InstallFunc () Application. MacroOptions Macro: = "ДЕХАФ", Description: = "Восстанавливает сообщение, & "кодированное кодом Хаффмана" End Sub 11

Задача 4.17. Примените функцию ДЕХАФ к данным зада­ чи 4.13. Технология решения. Вызывается функция ДЕХАФ и вводятся данные задачи 4.13, что приводит к результату полученному ранее (рис. 4.24):

347

?

Арrументы функции

ДЕХАФ Апфil,оит

Код Сообщ�н�

·12345·

·1234s·

• 1·00 ·;·01·;·10·;·110·;· 11 1·}

r-00·;· 01·;•1,0·;·110·;·111 ·}

.11011110010010111 · ·4sз2,з5·

"11011110010010111.

Восстана11111111.аrт соо6щrн11r, кор;11ро11анноr кодом Хаффмана. Значrн11r: 4532135

Loк_J

Рис. 4.24. Применение функции ДЕХАФ в задаче 4.17

Задача 4.18. Примените функцию ДЕХАФ к данным задачи 4.14. Технология решения аналогична применяемой в задаче 4.17 (рис. 4.25): ?

Арrументы функции ДЕХАФ �

Алфавит 1 "12.3456"

код lго·;·11·;·1000·;·1001·;·1010·;·н � Сообщение 1·10111001101010000111000·



"12.3456"

го·;·,,·:· 1000·;· 1001· ;· 1010·;· 10 ... ·10111001101010000111000· "645312.3"

Восстанавливает сообщение, кодированное кодо м Хаффмана.

Значение: 645312.3

� о_к_�I _ I

Спра�,ка по этой Функции

ен Отм а

Рис. 4.25. Применение функции ДЕХАФ в задаче 4.18

Задача 4.19. Примените функцию ДЕХАФ к данным задачи 4.15. Технология решения. Вызывается функция ДЕХАФ и вводятся данные задачи 4.15, что приводит к результату полученному ранее (рис. 4.26): ?

АR[УМенты функции ДЕХАФ Алфавит 1 "АМТЕИК"



Код lгоо·;· 10·;·11·;·011·;·0100·;·010· � Сообщение 1·1000110111000110100010100 · �

"АМТЕИК" гоо·:·10 ·;·11 ·:·011·;·0100 ·;·0101 ·} ·1000110111000110100010100· "МАТЕМАТИКА"

Восстанавливает сообщение, кодирован ное кодом Хаффмана.

Зна чение: МАТЕМАТИКА

Спра�,ка по это1� Фу нкции

�_о_к_�I I

Отмена

Рис. 4.26. Применение функции ДЕХАФ к задаче 4.19 348

3.5. КОНТРОЛЬНЫЕ ЗАДАНИЯ 1. Применяя пользовательскую функцию КРА, найдите кодовое расстояние между словами 1ООО111О1 и 100111О11. Ответ (рис. 5.1): ?

Аргументы функции КРА Слово1 !·100011101· Слово2 1 ·100111011 ·



·100011101·



·100111011·

з в в в в Воз ра щает кодо ое расстояние междУ д оичными С/lо ами. Знач ение;, З

а Отмен

� о_к_�I _ I

Справ:ка по этой Функции

Рис. 5.1. Применение функции КОРА в задаче 1

2. Применяя пользовательскую функцию КРМ, найдите кодовое расстояние между множеством слов С = {01001, 11101, 10101}. Ответ (рис. 5.2): ?

Аргументы функции КРМ Слова !го1001·;·11101·;·10101 ·1



= го1001·;·11101·;·10101·J

= 1 Возв ащ ает кодовое р.асстояни е ножества двои чных С11ов. р м Значен е: 1 и Справка по лай функции



ок 1 -�

1

О мена т

Рис. 5.2. Применение функции КРМ в задаче 2

3. Применяя макрос Hamming, найдите код Хэмминга сообщения 11001011. Ответ (рис. 5.3):

:1 1

А

11

о

в

1

о

с

о 1

D

о о

Е

1 1

F

о о

G

1

о

н

к

11 1

1

о

1

1

Рис. 5.3. Применение макроса Hamming в задаче 3 349

4. Применяя пользовательскую функцию ХЭММИНГ, найдите код Хэмминга сообщения 10101. Ответ (рис. 5.4): ?

Аргументы функции

хэмминг Сообщение

._

____.rn_�--�

·10101.

·10 _ 10_ _ 1_· ______

l

·00110 1 011· Кодирует сообщение методом Хзмминг,а. З ачени :: 0011 О 1 О 11 е н

�_о_к_�l I

Справка по зтой Функции

Отмена

Рис. 5.4. Применение функции ХЭММИНГ в задаче 4

5. Применяя макрос Dehamming, декодируйте код Хэмминrа 001010101 и сделайте проверку. Ответ (рис. 5.5): в

А 2 3 4 5 б 7

о

с

D

Е

о

о

1

1

о

1

F

н

G

8 1

1

Рис. 5.5. Вид решения задачи 5

Проверка (рис. 5.6): А 2 3 4 5 б 7

о о

в

о

с

D 1

о

о

о

о

1

о

1

Е

F 1

о

н

G 1

1

1

о 1

1

Рис. 5.6. Результаты проверки

6. Применяя макрос Dehamming, декодируйте код Хэмминrа 1000011010 и сделайте проверку. Ответ (рис. 5.7): 350

в

А 1

2

з

с

о

D

1

о

о

1

о

о

1

о

1

1

Е

о

F

н

G 1

1

о

о

о

о

J

о•

4

5

9

7

о

б

о

о

Рис. 5.7. Вид решения задачи 6

Проверка (рис. 5.8):

в

А 1

2

з

4

D

о

о

о

о

о

о

1

1

5

о

7

о

б

с

1

о

о

Е

о

о

F

н

G 1

1

J

о•

о

Рис. 5.8. Результаты проверки

7. Применяя пользовательскую функцию DЕХЭМ, декодируйте код Хэмминга 001010101. Ответ (рис. 5.9): ?

Аргументы функции ДЕХЭМ Код 1 "001010101" Декодирует код Х:эмминга.

Значение:

1 1О1 1

Справка по этой Функции

·001010101 • . 1 1 О 1 1.

lI

__ о_к __

Отмена

Рис. 5.9. Применение функции DЕХЭМ в задаче 7

8. Применяя пользовательскую функцию DЕХЭМ, декодируйте код Хэмминга 1000011010. Ответ (рис. 5.10): 351

?

Арrументы функции ДЕХЭМ • 1000011010·

Код 1 "1000011010"

· оо 1 1 оо· Декодирует код Хэмминг,а. ОО 1 1 ОО Значение:

___.l I

Справка по этой ф1,,•нкции

.___о_к _

Отмена

Рис. 5.10. Применение функции DЕХЭМ в задаче 8

9. Применяя макрос Huffman, найдите оптимальный двоичный код алфавита, символы которого принимаются с вероятностями 0,5; 0,2; 0,2; 0,1. Ответ (рис. 5.11): 1

2 3 4

с

в

А

0,5 0,3 0,2

0,5

0,2 0,2 0,1

D

0,5

о 1

0,5

F

Е о

о

10

11 10 О 10 1

11

Рис. 5.11. Вид решения задачи 9

10. Применяя функцию ХАФФМАН, найдите оптимальный дво­ ичный код алфавита, символы которого принимаются с вероятно­ стями 0,6; 0,2; 0,1; 0,1. Ответ (рис. 5.12): ?

Арrументы функции ХАС!ХРМАН Вероятноа;и '-'1{О....:.'....:.;--'О,-'2;'6 0,'-1;'- О.:....,1).:.... ______.I_�_,-! = {О, 6;0,2;0, 1;0, 1) = {"0";"1 О ·;·1 1 О ·;·1 1 1 ")

Возвращает по вероятностям (частота , м) код Х.аффмана.

Значение: О

Справка по этой Функции

Рис. 5.12. Применение функции ХАФФМАН в задаче 10 352

lI

__о_к__

Отмена

11. Применяя функцию ХАФФМАН, найдите оптимальный дво­ ичный код алфавита, символы которого принимаются с частотами 2, 2, 1, 1, 1. Ответ (рис. 5.13): ?

Аргументы функции ХАффМАН

Вероят"осrи �1{2;-� 2 ·;�11 ;� ; 1 � }� ------���-- : {2;2;11 ; ;1} : гоо·;·о1 ·;·11·;·1о о·;·1о 1 "}

Возвращает по вероятностям (частотам) код Хаффмана. З ач ние: О О н е

� о_к _

Справ:ка по этой Функции

_�1 1

Отмена

Рис. 5.13. Применение функции ХАФФМАН в задаче 11

13. Применяя макрос Decohuff, декодируйте криптограмму Хафф­ мана 1001101011000, если А = {1, 2, 3, 4}, С = {О, 11, 100, 101}. Ответ (рис. 5.14):

в

А 1

1

Е

D 3

о

11

100

101

3

2

1

4

3 1001101011000

4

5

с

2

F

1

3

Рис. 5.14. Вид решения задачи 13

14. Применяя макрос Decohuff, декодируйте криптограмму Хаффмана 0001110100101100, если А = {с, е, м, р, т}, С = {00, 01, 11, 100, 101}. Ответ (рис. 5.15): А 1

с

е

в

2 00 01 3 0001110100101100 4 5 с е

D

(

м

G

Е

р 100

т

11



е



101

т

р

Рис. 5.15. Вид решения задачи 14

15. Примените пользовательскую функцию ДЕХАФ к задаче 14. Ответ (рис. 5.16): 353

?

Аргументы функции ДЕ..ХАФ

Алфавит 1 "СЕМРГ

� ::===========

Код 1{"00";"01·;·11·;·100·;·101"} Сообщение 1·00011101 00101100·

[fi]



"СЕМРТ"

{"00";"01 ·;·11·;·100·;·101"} ·00011101001011оо·

"CEMEGP" Восстанавливает сообщение, кодированное кодом Хаффмана. Значение� CEl\•1EGP Справка полой функции



ок

-

1 1

-

Рис. 5.16. Применение функции ДЕХАФ в задаче 15

Отмена

БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. Алферов, А. П. Основы криптографии : учебное пособие / А. П. Алферов, А.Ю. Зубов и др. - 2-е изд., испр. и доп. - Москва: Гелиос АРВ, 2001. - 480 с. 2. Гаврилов, Г. П. Задачи и упражнения по дискретной математи­ ке: учебное пособие/ Г. П. Гаврилов, А. А. Сапоженко. - 3-е изд., перераб. - Москва : Физматлит, 2003. - 416 с. 3. Гарнаев, А. Ю. MS Excel 2002: Разработка приложений / А. Ю. Гарнаев. - Санкт-Петербург: БХВ-Петербург, 2003. - 768 с. 4. Горбатов, В. А. Фундаментальные основы дискретной матема­ тики. Информационная математика. / В. А. Горбатов - Москва : Наука; Физматлит, 2000. - 544 с. 5. Ерусалимский, Я. М. Дискретная математика: теория, задачи, приложения / Я. М. Ерусалимский - 3-е издание. - Москва: Ву­ зовская книга, 2000. - 280 с. 6. Игошин, В. И. Математическая логика : учебное пособие / В. И. Игошин - Москва: ИНФРА-М, 2016. - 399 с. 7. Крылов, С. С. ЕГЭ. Информатика и ИКТ: типовые экзамена­ ционные варианты: 20 вариантов/ С. С. Крылов, Т. Е. Чуркина. Москва: Национальное образование, 2019. - 416 с. 8. Осипян, В. О. Криптография в задачах и упражнениях / В. О. Осипян, К. В. Осипян. - Москва: ГелиосАРВ, 2004. - 144 с. 9. Поляков, К. Ю. Углубленный уровень: учебник для 10 класса: в 2 ч. Ч. 2 / К.Ю. Поляков, Е.А. Еремин. - Москва : БИНИМ ; Лаборатория знаний, 2013. - 304 с. 10. Саломаа, А. Криптография с открытым ключом/ А. Саломаа; пер. с англ. - Москва: Мир, 1995. - 318 с. 11. Сдвижков, О. А. Математика в Excel 2003/ О.А. Сдвижков. Москва: СОЛОН-Пресс, 2005. - 192 с. 12. Сдвижков, О. А. Excel-VВA. Словарь-справочник пользовате­ ля/ О. А. Сдвижков - Москва: Эксмо, 2008. - 224 с. 13. Сдвижков, О. А. Дискретная математика и математические методы экономики с применением VВА Excel/ О. А. Сдвижков. Москва: ДМК Пресс, 2012. - 212 с. 14. Сдвижков, О. А. Практикум по методам оптимизации / О. А. Сдвижков - Москва : Вузовский учебник ; ИНФРА-М, 2015. - 200 с. 15. Сдвижков, О. А. Характеристические полиномы булевых функций// Международный научно-исследовательский журнал. 2017. - № 9-3 (63). С. 96-102. 355

16. Сдвижков, О. А. Применение линейного программирования к задачам алгебры логики// Международный научно-исследователь­ ский журнал. - 2017. - № 10-3 (64). - С. 116-122. 17. Сдвижков, О. А. Матричное исчисление в алгебре логики // Международный научно-исследовательский журнал. - 2019. № 10 (88). - С. 11-16. 18. Сдвижков, О. А. Алгебра логики в теории событий// Между­ народный научно-исследовательский журнал. - 2020. - № 4 (94). С. 17-22. 19. Смаллиан, Р. Принцесса или тигр?/ Р. Смаллиан - Москва: Мир, 1985. - 221 с. 20. Супрун, В. П. Основы теории булевых функций/ В. П. Су­ прун - Москва: ЛЕНАНД, 2017. - 208 с. 21. Тишин, В. В. Дискретная математика в примерах и задачах/ В. В. Тишин - Санкт-Петербург: БХВ-Петербург, 2008. - 352 с. 22. Угринович, Н. Д. Информатика и информационные техноло­ гии : учебник для 10-11 классов / Н. Д. Угринович - Москва : БИНОМ; Лаборатория знаний. 2003. - 513 с. 23. Ушаков, Д. М. Информатика: большой сборник тематических заданий для подготовки к единому государственному экзамену / Д.М. Ушаков. - Москва : АСТ, 2018. - 312 с. 24. Шевелев, Ю. П. Дискретная математика. Ч. 1: Теория мно­ жеств. Булева алгебра: учебное пособие/ Ю. П. Шевелев - Томск: Томск. гос. ун-т систем управления и электроники, 2003. - 118 с. 25. Яблонский, С. В. Введение в дискретную математику: учебное пособие для вузов/ С. В. Яблонский; под ред. В. А. Садовничего. 4-е изд., стер. - Москва: Высшая школа, 2003. - 384 с.

356