Дискретная математика : теория и практика решения задач по информатике: учебное пособие
Автор:
Окулов С. М.
Год издания: 2020
Серия:
Педагогическое образование
Издательство: Лаборатория знаний
Возрастное ограничение:
12+
Объем (стр.):
425
Постраничный просмотр для данной книги Вам недоступен.
Оплатить доступ к режиму онлайн-чтения.
В учебном пособии даны ключевые разделы дискретной математики с практической реализацией алгоритмических решений. Книга написана на основе лекционного курса и практических занятий для студентов факультета информатики Вятского государственного гуманитарного университета, а также спецкурса, читаемого автором для школьников, занимающихся информатикой по углубленной программе.
Для студентов высших учебных заведений, а также старшеклассников, углубленно изучающих информатику.
Для студентов высших учебных заведений, а также старшеклассников, углубленно изучающих информатику.
| Предисловие | 7 |
| Глава 1. Основные методы дискретной математики (счет и перебор) | 10 |
| 1.1. Счет и перебор | 10 |
| 1.2. Асимптотические обозначения и основная теорема | 17 |
| 1.3. Эффект «комбинаторного взрыва» | 20 |
| Упражнения и задачи | 22 |
| Комментарии | 24 |
| Глава 2. Основные комбинаторные принципы и понятия в примерах | 25 |
| 2.1. Принципы сложения и умножения | 25 |
| 2.2. Подмножества | 25 |
| 2.3. Принцип включения и исключения | 26 |
| 2.4. Выборки | 28 |
| 2.5. Размещения с повторениями | 28 |
| 2.6. Размещения без повторений | 29 |
| 2.7. Сочетания без повторений | 30 |
| 2.8. Бином Ньютона и полиномиальная формула (комбинаторный смысл) | 32 |
| 2.9. Сочетания с повторениями | 33 |
| 2.10. Перестановки без повторений | 33 |
| 2.11. Перестановки с повторениями | 38 |
| 2.12. Задача о размещениях | 39 |
| 2.13. Разбиения | 42 |
| 2.14. Разбиения на циклы | 43 |
| 2.15. Разбиение числа на слагаемые | 45 |
| Упражнения и задачи | 46 |
| Комментарии | 51 |
| Глава 3. Перечисление комбинаторных объектов | 52 |
| 3.1. Общая схема генерации комбинаторных объектов | 52 |
| 3.2. Генерация перестановок без повторений | 53 |
| 3.3. Генерация сочетаний без повторений | 54 |
| 3.4. Генерация размещений без повторений | 55 |
| 3.5. Генерация перестановок с повторениями | 57 |
| 3.6. Генерация сочетаний с повторениями | 57 |
| 3.7. Генерация размещений с повторениями | 57 |
| 3.8. Генерация подмножеств | 58 |
| 3.9. Генерация разбиений | 60 |
| 3.10. Генерация разбиений на циклы | 66 |
| 3.11. Генерация разбиений числа на слагаемые | 73 |
| Упражнения и задачи | 74 |
| Комментарии | 75 |
| Глава 4. Рекуррентные и нерекуррентные формулы | 76 |
| 4.1. Простые примеры | 76 |
| 4.2. Числа Фибоначчи | 77 |
| 4.3. Числа Каталана | 82 |
| 4.4. Схема нахождения общего решения линейных рекуррентных уравнений | 86 |
| 4.5. Производящие функции | 90 |
| 4.6. Ладейные полиномы | 97 |
| 4.7. Аддитивность задач, или динамическое программирование | 101 |
| Упражнения и задачи | 106 |
| Комментарии | 110 |
| Глава 5. Понятие графа, основные методы просмотра вершин графа | 111 |
| 5.1. Терминология | 111 |
| 5.2. Способы представления графа | 112 |
| 5.3. Поиск в глубину | 114 |
| 5.4. Поиск в ширину | 116 |
| 5.5. Основные понятия | 117 |
| Упражнения и задачи | 124 |
| Комментарии | 129 |
| Глава 6. Деревья | 130 |
| 6.1. Определение дерева | 130 |
| 6.2. Перечисление остовных деревьев связного помеченного графа | 131 |
| 6.3. Матричная формула Кирхгофа | 134 |
| 6.4. Алгоритм представления дерева в виде последовательности чисел | 135 |
| 6.5. Остовные деревья минимального веса | 137 |
| 6.6. Задача Штейнера | 141 |
| Упражнения и задачи | 143 |
| Комментарии | 144 |
| Глава 7. Связность | 145 |
| 7.1. Вершинная и реберная связность | 145 |
| 7.2. Метод нахождения блоков графа | 147 |
| 7.3. Теорема Менгера | 149 |
| 7.4. Связность в орграфе | 151 |
| Упражнения и задачи | 154 |
| Комментарии | 155 |
| Глава 8. Циклы | 156 |
| 8.1. Эйлеровы графы | 156 |
| 8.2. Гамильтоновы графы | 158 |
| 8.3. Фундаментальное множество циклов | 161 |
| 8.4. Матроиды | 166 |
| Упражнения и задачи | 172 |
| Комментарии | 173 |
| Глава 9. Покрытия и независимость | 174 |
| 9.1. Основные понятия | 174 |
| 9.2. Метод генерации всех максимальных независимых множеств вершин графа | 175 |
| 9.3. Клики | 179 |
| 9.4. Доминирующие множества | 180 |
| 9.5. Паросочетания | 185 |
| 9.6. Матроиды трансверсалей | 196 |
| 9.7. Диаграмма взаимосвязей между задачами | 198 |
| Упражнения и задачи | 201 |
| Комментарии | 203 |
| Глава 10. Планарные графы | 204 |
| 10.1. Основные понятия | 204 |
| 10.2. Формула Эйлера | 204 |
| 10.3. Алгоритм укладки графа на плоскости | 206 |
| Упражнения и задачи | 214 |
| Комментарии | 215 |
| Глава 11. Раскраска вершин графа | 216 |
| 11.1. Хроматическое число | 216 |
| 11.2. Метод правильной раскраски | 217 |
| 11.3. Методы поиска минимальной раскраски | 219 |
| Упражнения и задачи | 222 |
| Комментарии | 223 |
| Глава 12. Кратчайшие пути в графе | 224 |
| 12.1. Постановка задачи. Вывод пути | 224 |
| 12.2. Алгоритмы поиска кратчайших путей | 226 |
| Упражнения и задачи | 234 |
| Комментарии | 235 |
| Глава 13. Потоки в сетях | 236 |
| 13.1. Основные понятия и постановка задачи | 236 |
| 13.2. Алгоритм К. Эдмондса—Р. Карпа | 237 |
| 13.3. Введение в метод блокирующих потоков или алгоритм Е. А. Диница | 244 |
| 13.4. Модификация алгоритма Е. А. Диница | 252 |
| Упражнения и задачи | 260 |
| Комментарии | 262 |
| Ответы и решения | 263 |
| Задачи для самостоятельного решения | 353 |
| Приложение 1. Математические факты и доказательства отдельных теорем | 375 |
| Приложение 2. Описание основных элементов языков программирования Паскаль, визуального Бейсика и С++ | 396 |
| Литература | 414 |
| Предметный указатель | 416 |




