Введение в анализ алгоритмов








Как доказать, что заданный алгоритм делает то, что он должен делать? Ключевые идеи индукции и инвариантности Стандартные методы проектирования: жадные алгоритмы, динамическое программирование и парадигма "разделяй и властвуй" Математическая основа алгоритмов Расширенные алгоритмы Задания с предельными сроками Онлайновые алгоритмы Шифрование с публичным ключом Решение оптимизационных задач Задача данной книги проста: разобрать "идеи", лежащие в основе программ, и показать, как доказывать их правильность. Как математически доказать, что заданный алгоритм делает то, что он должен делать? И почему это так важно? Доказывается правильность классических алгоритмов: целочисленного деления, алгоритм Евклида, ранжирования, др. Помимо традиционных алгоритмов, таких как жадные алгоритмы, алгоритмы динамического программирования и алгоритмы "разделяй и властвуй", книга исследует также рандомизированные и онлайновые алгоритмы. Первые стали повсеместными из-за появления криптографии, а вторые необходимы во многих областях, начиная с операционных систем и заканчивая фондовым рынком. Книга усеяна задачами. Большинство задач теоретические, но многие требуют реализации алгоритма; для таких задач используется язык программирования Python 3. Несмотря на свою краткость, издание является математически строгим. Желательно предварительное знакомство с дискретной математикой. Издание предназначено для студентов вузов, специалистов в области информатики и математики, а также широкого круга программистов и разработчиков.
Go to description and details| Publisher | ДМК Пресс |
| Publication year | 2019 |
| Pages | 278 |
| Language | Русский |
| ISBN | 978-5-9706-0696-4 |
Как доказать, что заданный алгоритм делает то, что он должен делать? Ключевые идеи индукции и инвариантности Стандартные методы проектирования: жадные алгоритмы, динамическое программирование и парадигма "разделяй и властвуй" Математическая основа алгоритмов Расширенные алгоритмы Задания с предельными сроками Онлайновые алгоритмы Шифрование с публичным ключом Решение оптимизационных задач Задача данной книги проста: разобрать "идеи", лежащие в основе программ, и показать, как доказывать их правильность. Как математически доказать, что заданный алгоритм делает то, что он должен делать? И почему это так важно? Доказывается правильность классических алгоритмов: целочисленного деления, алгоритм Евклида, ранжирования, др. Помимо традиционных алгоритмов, таких как жадные алгоритмы, алгоритмы динамического программирования и алгоритмы "разделяй и властвуй", книга исследует также рандомизированные и онлайновые алгоритмы. Первые стали повсеместными из-за появления криптографии, а вторые необходимы во многих областях, начиная с операционных систем и заканчивая фондовым рынком. Книга усеяна задачами. Большинство задач теоретические, но многие требуют реализации алгоритма; для таких задач используется язык программирования Python 3. Несмотря на свою краткость, издание является математически строгим. Желательно предварительное знакомство с дискретной математикой. Издание предназначено для студентов вузов, специалистов в области информатики и математики, а также широкого круга программистов и разработчиков.
| Publisher | ДМК Пресс |
| Publication year | 2019 |
| Pages | 278 |
| Language | Русский |
| ISBN | 978-5-9706-0696-4 |
| Cover | Твёрдый переплёт |
| Paper | офсетная (60-220 г/м2) |
| Dimensions | 171 × 17 × 242 mm |
| Weight, g | 579 |
| Age restriction | 6+ |