Дискретная математика для программистов, Хаггарти Р., 2003.
Элементарное введение в дискретную математику, без знания которой невозможно успешно заниматься информатикой и программированием. Ни одно из немногочисленных изданий по этой дисциплине, вышедших на русском языке, не читается с таким удовольствием и пользой. В доступной и весьма увлекательной форме автор рассказывает о фундаментальных понятиях дискретной математики - о логике, множествах, графах, отношениях и булевых функциях. Теория изложена кратко и иллюстрируется многочисленными простыми примерами, что делает ее доступной даже школьнику. После каждой главы (начиная со второй) рассматривается приложение описанных методов к информатике.
Содержание.
Указатель обозначений. 6
Предисловие. 9
Глава 1.
Введение. 11
1.1. Моделирование. 11
1.2. Псевдокод. 14
Набор упражнений 1. 19
Краткое содержание главы. 21
Глава 2.
Логика и доказательство. 23
2.1. Высказывания и логика. 23
2.2. Предикаты и кванторы. 27
2.3. Методы доказательств. 30
2.4. Математическая индукция. 32
Набор упражнений 2. 35
Краткое содержание главы. 38
Приложение. Корректность алгоритмов. 39
Глава 3.
Теория множеств. 44
3.1. Множества и операции над ними. 44
3.2. Алгебра множеств. 51
3.3. Дальнейшие свойства множеств. 53
Набор упражнений 3. 58
Краткое содержание главы. 61
Приложение. Система с базой знаний. 63
Глава 4.
Отношения. 68
4.1. Бинарные отношения. 68
4.2. Свойства отношений. 73
4.3. Отношения эквивалентности и частичного порядка. 77
Набор упражнений 4. 82
Краткое содержание главы. 85
Приложение. Системы управления базами данных. 86
Глава 5.
Функции. 91
5.1. Обратные отношения и композиция отношений. 91
5.2. Функции. 96
5.3. Обратные функции и композиция функций. 102
5.4. Принцип Дирихле. 105
Набор упражнений 5. 108
Краткое содержание главы. 112
Приложение. Языки функционального программирования. 113
Глава 6.
Комбинаторика. 117
6.1. Правила суммы и произведения. 117
6.2. Комбинаторные формулы. 120
6.3. Бином Ньютона. 128
Набор упражнений 6. 131
Краткое содержание главы. 135
Приложение. Эффективность алгоритмов. 136
Глава 7.
Графы. 141
7.1. Графы и терминология. 142
7.2. Гамильтоновы графы. 147
7.3. Деревья. 152
Набор упражнений 7. 158
Краткое содержание главы. 163
Приложение. Сортировка и поиск. 165
Глава 8.
Ориентированные графы. 171
8.1. Ориентированные графы. 171
8.2. Пути в орграфах. 175
8.3. Кратчайший путь. 181
Набор упражнений 8. 184
Краткое содержание главы. 187
Приложение. Коммуникационные сети. 189
Глава 9.
Булева алгебра. 194
9.1. Булева алгебра. 194
9.2. Карта Карно. 200
9.3. Функциональные схемы. 205
Набор упражнений 9. 208
Краткое содержание главы. 211
Приложение. Проектирование 2-битного сумматора. 212
Решения упражнений.217
Дополнение. 275
Д. 1. Генератор случайных графов. 275
Д. 1.1. Алгоритм построения случайного неориентированного графа. 278
Д. 1.2. Алгоритм построения случайного ориентированного графа. 279
Д. 1.3. Алгоритм построения случайного ориентированного бесконтурного графа. 280
Д.2. Связность в графах. 282
Д.2.1. Алгоритм Уоршелла, вычисляющий матрицу связности-284
Д.2.2. Выделение компонент связности. 288
Д.З. Эйлеровы циклы. 291
Д.3.1. Алгоритм построения эйлерова цикла в графе. 292
Д.3.2. Алгоритм Терри. 296
Д.4. Операции над множествами. 301
Д.4.1. Объединение множеств. 305
Литература.312
Предметный указатель.313
Предисловие.
Основная цель этой книги - рассказать об основной математической технике, необходимой студентам, изучающим информатику. Представленные здесь темы интересны и сами по себе, и в связи с их широкой применимостью как непосредственно в математике, так и в дисциплинах, использующих математический аппарат. В частности, формальные методы, применяемые в информатике, опираются на такие фундаментальные понятия дискретной математики, как логика, множества, отношения и функции.
Теория излагается преднамеренно кратко, а обсуждаемые здесь математические идеи вполне доступны студентам со скромной математической подготовкой. В многочисленных примерах обобщаются и развиваются ключевые идеи курса, а каждая глава, начиная со второй, снабжена приложением теории к практике. Приложения наглядно демонстрируют, как математика, о которой рассказывается в книге, решает задачи информатики. Каждая глава заканчивается набором упражнений, а чтобы поощрить читателя заниматься ими, полное решение приводится только в конце книги.
Основной материал книги появился при подготовке к чтению начального (годового) курса информатики в Оксфорде. Он рассчитан на 20 лекций. Зависимость глав друг от друга представлена на диаграмме, которая показывает, что существует некоторая свобода выбора очередности изучения материала. Это вместе с возможностью опускать отдельные приложения или заменять их альтернативными, делает книгу более гибкой и удобной для изучения.
Купить книгу - Дискретная математика для программистов, Хаггарти Р., 2003. .
Купить книгу - Дискретная математика для программистов, Хаггарти Р., 2003. .
Теги: книга по программированию :: дискретная математика :: Хаггарти :: 2003
Смотрите также учебники, книги и учебные материалы:
- Решение 50 типовых задач по программированию на языке Pascal, Душистов Д.В., 2012
- SQL-запросы для простых смертных, практическое руководство по манипулированию данными в SQL, Хернандес М.Д., Вьескас Д.Л., 2003
- Linux и UNIX, программирование в shell, Руководство разработчика, Тейнсли Д., 2001
- Javascript, справочник, Аллен Вайк, 2002
- CGI программирование на Perl, Гулич С, Гундаварам Ш., Бирзнекс Г., 2001
- Первые уроки программирования, Звенигородский Г.А., 1985
- Just Java 2, Sixth Edition, Linden P., 2004
- The JFreeChart Class Library, Gilbert D., 2004