- Артикул:00821021
- Автор: Потопахин В.В.
- ISBN: 978-5-94074-804-5
- Тираж: 500 экз.
- Обложка: Мягкая обложка
- Издательство: ДМК пресс (все книги издательства)
- Город: Москва
- Страниц: 320
- Формат: 70x100 1/16
- Год: 2012
- Вес: 798 г
Эта книга для тех, кто хорошо, владея языком программирования и устойчивыми навыками решения задач, желает наработать свой программистский инструментарий. В книге, неформально и довольно детально, разобран значительный набор алгоритмов и методов. Большая часть представленных алгоритмов доведена до реализации на языке Компонентный Паскаль.
Для большей прозрачности изложения реализация выполнена пошагово с четкой формулировкой задач каждого шага и записью программного фрагмента.
Изложение сопровождается заданиями для самостоятельной работы, количество и сложность которых достаточны для хорошего усвоения материала. Требования к математическим знаниям минимальны, некоторые важные математические понятия и темы кратко изложены в приложении.
К изданию прилагается CD, на котором находится бесплатная среда программирования Блэкбокс, запустив которую, вы сразу сможете начать работу, а также сборник листингов к книге.
Содержание
Введение
Глава 1. Парадигма структурного программирования
Зачем нужны общие принципы?
Нисходящее проектирование
Три базовых элемента структурного программирования
Пример разработки
Глава 2. Вычислительные алгоритмы
Моделирование непрерывных процессов дискретными
Метод половинного деления. Общая задача поиска величины
Метод касательных
Метод хорд
Метод итераций (последовательных приближений)
Обобщение метода половинного деления
Метод наименьших квадратов
Задача вычисления площадей криволинейных фигур
Метод Симпсона
Метод Монте-Карло
Глава 3. Числовые алгоритмы
Алгоритм Евклида
Алгоритмы факторизации и поиска простых
Выделение полного квадрата (алгоритм Ферма)
Квадратичное решето
Алгоритм Полларда
Алгоритмы поиска простых чисел
Решето Аткина
Решето Сундарама
Тесты простоты
Числа Мерсенна
Тест Люка-Лемера
Числа Ферма
Тест Пепина
Псевдослучайные числа
Критерии правильности случайных чисел
Критерий, основанный на квадратичном отклонении
Линейный конгруэнтный метод
Методы перемешивания
Глава 4. Арифметика
Представление числа в позиционной системе счисления
Проблемы технической реализации арифметики
Двоичный сумматор
Ускорение операции сложения
Представление чисел в форме с фиксированной и плавающей десятичной точкой
Реализация арифметики на уровне алгоритмического языка
Сложение двух чисел
Вычитание из большего меньшего
Умножение
Деление
Некоторые другие алгоритмы
Алгоритм быстрого возведения в степень
Быстрый перевод из десятичной в двоичную систему счисления
Решение диофантовых уравнений
Двоичная арифметика
Сложение двоичных чисел
Как преобразовать в двоичное число дробную часть
Вычитание двоичных чисел
Умножение в двоичной системе счисления
Деление в двоичной системе счисления
Глава 5. Рекурсия и динамическое программирование
Общее определение
Задача о ханойской башне
Переход от рекурсивного к нерекурсивному решению
Рекурсия как метод поиска
Динамическое программирование
Задача обхода конем шахматной доски
Факторизация числа
Глава 6. Сортировки
Общая постановка задачи
Обменные сортировки. Сортировка пузырьком
Шейкерная сортировка
Анализ качеств алгоритма
Сортировка выбором
Сортировка вставками
Сортировка Шелла
Быстрая сортировка
Двоичная сортировка
Сортировка слияниями
Глава 7. Комбинаторные задачи
Общая постановка задачи
Оптимизация перебора
Связь комбинаторики с алгоритмами на графах
Основные комбинаторные задачи
Задача получения перестановок на множестве из N элементов
Построение сочетаний без повторений на множестве элементов
Сочетания с повторениями
Задача получения размещений
Глава 8. Динамические структуры данных
Понятие о динамической величине
Линейный связный список
Зачем рекурсивные структуры нужны?
Использование рекурсивных определений для создания деревьев данных
Глава 9. Алгоритмы принятия решений
Постановка задачи. Понятие эвристического алгоритма
Оценочная функция
Метод минимакса
Альфа-бета алгоритм
Глава 10. Алгоритмы на графах
Стратегии обхода
Обход графа в ширину
Обход графа в глубину
Построение остовного дерева
Алгоритм Прима
Алгоритм Краскала
Алгоритм поиска компонент связности
Волновой алгоритм
Алгоритм Дейкстры
Алгоритм Флойда
Нахождение максимального потока
Глава 11. Приложения
Приложение 1. Элементы комбинаторики
Приложение 2. Теория графов
Приложение 3. Элементы теории вероятности
Приложение 4. Синтаксис языка Компонентный Паскаль
Список литературы