Введение в анализ алгоритмов
Raamat riiulist
Kirjeldus
Как доказать, что заданный алгоритм делает то, что он должен делать? Ключевые идеи индукции и инвариантности Стандартные методы проектирования: жадные алгоритмы, динамическое программирование и парадигма "разделяй и властвуй" Математическая основа алгоритмов Расширенные алгоритмы Задания с предельными сроками Онлайновые алгоритмы Шифрование с публичным ключом Решение оптимизационных задач Задача данной книги проста: разобрать "идеи", лежащие в основе программ, и показать, как доказывать их правильность. Как математически доказать, что заданный алгоритм делает то, что он должен делать? И почему это так важно? Доказывается правильность классических алгоритмов: целочисленного деления, алгоритм Евклида, ранжирования, др. Помимо традиционных алгоритмов, таких как жадные алгоритмы, алгоритмы динамического программирования и алгоритмы "разделяй и властвуй", книга исследует также рандомизированные и онлайновые алгоритмы. Первые стали повсеместными из-за появления криптографии, а вторые необходимы во многих областях, начиная с операционных систем и заканчивая фондовым рынком. Книга усеяна задачами. Большинство задач теоретические, но многие требуют реализации алгоритма; для таких задач используется язык программирования Python 3. Несмотря на свою краткость, издание является математически строгим. Желательно предварительное знакомство с дискретной математикой. Издание предназначено для студентов вузов, специалистов в области информатики и математики, а также широкого круга программистов и разработчиков.Toode ID
6431410
Autor
Kirjastaja
Aasta
2019
ISBN
978-5-97060-696-4, 978-5-9706-0696-4
Kaal
779
Köitmine
твёрдый переплёт
Kättesaadavus
Laos
Pakendi suurus
XS