Классические задачи Computer Science на языке Python - Дэвид Копец - E-Book

Классические задачи Computer Science на языке Python E-Book

Дэвид Копец

0,0

Beschreibung

Многие задачи в области Computer Science, которые на первый взгляд кажутся новыми или уникальными, на самом деле уходят корнями в классические алгоритмы, методы кодирования и принципы разработки. И устоявшиеся техники по-прежнему остаются лучшим способом решения таких задач! Научитесь писать оптимальный код для веб-разработки, обработки данных, машинного обучения и других актуальных сфер применения Python. Книга даст вам возможность глубже освоить язык Python, проверить себя на испытанных временем задачах, упражнениях и алгоритмах. Вам предстоит решать десятки заданий по программированию: от самых простых (например, найти элементы списка с помощью двоичной сортировки), до сложных (выполнить кластеризацию данных методом k-средних). Прорабатывая примеры, посвященные поиску, кластеризации, графам и пр., вы вспомните то, о чем успели позабыть и овладеете классическими приемами решения повседневных задач. В этой книге •Алгоритмы поиска. •Обобщенные технологии для графов. •Нейронные сети. •Генетические алгоритмы. •Состязательный поиск. •Использование аннотаций типов в описанных задачах.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 312

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Переводчики Е. Сандицкая (Полонская), Е. Сандицкая (Полонская)

Дэвид Копец

Классические задачи Computer Science на языке Python. — СПб.: Питер, 2024.

ISBN 978-5-4461-1428-3

© ООО Издательство "Питер", 2024

Оглавление

Благодарности
Об этой книге
Торговые марки
Форум этой книги
Об авторе
Об иллюстрации на обложке
От издательства
Введение
Почему именно Python
Что такое классическая задача программирования
Какие задачи представлены в этой книге
Для кого эта книга
Версии Python, хранилище исходного кода и аннотации типов
Никакой графики и пользовательских интерфейсов — только стандартная библиотека
Книги этой серии
Глава 1. Простые задачи
1.1. Ряд Фибоначчи
1.2. Простейшее сжатие
1.3. Невскрываемое шифрование
1.4. Вычисление числа
1.5. Ханойские башни
1.6. Реальные приложения
1.7. Упражнения
Глава 2. Задачи поиска
2.1. Поиск ДНК
2.2. Прохождение лабиринта
2.3. Миссионеры и людоеды
2.4. Реальные приложения
2.5. Упражнения
Глава 4. Графовые задачи
4.1. Карта как граф
4.2. Построение графовой структуры
4.3. Поиск кратчайшего пути
4.4. Минимизация затрат на построение сети
4.5. Поиск кратчайших путей во взвешенном графе
4.6. Реальные приложения
4.7. Упражнения
Глава 6. Кластеризация методом k-средних
6.1. Предварительные сведения
6.2. Алгоритм кластеризации k-средних
6.3. Кластеризация губернаторов по возрасту и долготе штата
6.4. Кластеризация альбомов Майкла Джексона по длительности
6.5. Проблемы и расширения кластеризации методом k-средних
6.6. Реальные приложения
6.7. Упражнения
Глава 7. Простейшие нейронные сети
7.1. В основе — биология?
7.2. Искусственные нейронные сети
7.3. Предварительные замечания
7.4. Построение сети
7.5. Задачи классификации
7.6. Повышение скорости работы нейронной сети
7.7. Проблемы и расширения нейронных сетей
7.8. Реальные приложения
7.9. Упражнения
Глава 8. Состязательный поиск
8.1. Основные компоненты настольной игры
8.2. Крестики-нолики
8.3. Connect Four
8.4. Другие улучшения минимакса
8.5. Реальные приложения
8.6. Упражнения
Глава 9. Другие задачи
9.1. Задача о рюкзаке
9.2. Задача коммивояжера
9.3. Мнемоника для телефонных номеров
9.4. Реальные приложения
9.5. Упражнения
Приложение A. Глоссарий
Приложение Б. Дополнительные ресурсы
Б.1. Python
Б.2. Алгоритмы и структуры данных
Б.3. Искусственный интеллект
Б.4. Функциональное программирование
Б.5. Полезные проекты с открытым исходным кодом для машинного обучения
Приложение В. Коротко об аннотациях типов
В.1. Что такое аннотации типов
В.2. Как выглядят аннотации типа
В.3. Почему полезны аннотации типов
В.4. Каковы недостатки аннотаций типов
В.5. Источники дополнительной информации

Посвящается моей бабушке Эрминии Антос, которая всю жизнь училась сама и учила других.

Благодарности

Я благодарю всех сотрудников издательства Manning, которые помогали в создании этой книги: Шерил Вейсман, Дирдре Хайам, Кэти Теннант, Дотти Марсико, Дженет Вейл, Барбару Мирецки, Александра Драгосавлевича, Мэри Пирджис и Марию Тюдор.

Я благодарю специалиста по отбору новых книг Брайана Сойера, который предложил нам переключиться на Python после того, как я закончил книгу о Swift. Спасибо редактору по развитию Дженнифер Стаут за неизменно доброжелательное отношение. Благодарю научного редактора Фрэнсис Буонтемпо — она внимательно изучила каждую главу и на каждом шагу давала подробные полезные комментарии. Я благодарю литературного редактора Энди Кэрролла, чье исключительное внимание к деталям как в книге о Swift, так и в этой позволило отловить несколько допущенных мной ошибок. Спасибо также корректору Хуану Руфесу.

Эту книгу рецензировали Эл Кринкер, Эл Пезевски, Алан Богусевич, Брайан Канада, Крейг Хендерсон, Дэниэл Кенни-Юнг, Эдмонд Сисей, Ева Барановска, Гэри Барнхарт, Джефф Кларк, Джеймс Уотсон, Джеффри Лим, Иенс Кристиан, Бредал Мэдсен, Хуан Хименес, Хуан Руфес, Мэтт Лемке, Майур Патил, Майкл Брайт, Роберто Касадей, Сэм Зейдел, Торстен Вебер, Том Джеффрис и Уилл Лопес. Спасибо всем, кто высказал конструктивную и конкретную критику во время создания этого издания. Ваши отзывы были учтены.

Я благодарю свою семью, друзей и коллег, которые вдохновили меня взяться за написание этой книги сразу же после публикации Classic Computer Science Problems in Swift. Я благодарю своих подписчиков в «Твиттере» и в других сетях за то, что поддерживали меня и помогали в работе над книгой — в большом и малом. Огромное спасибо моей жене Ребекке Копец и маме Сильвии Копец, которые все­гда поддерживают все мои проекты.

Мы создали эту книгу за довольно короткое время. Основная ее часть была написана летом 2018 года. Я ценю, что издательство Manning согласилось сократить свой обычно гораздо более длительный технологический процесс, чтобы я мог работать в удобном для себя режиме. Я знаю, что это затронуло всю команду, поскольку всего за несколько месяцев мы провели три этапа проверок на разных уровнях с привлечением множества разных людей. Большинство читателей были бы поражены тем, сколько разных видов проверок проходит техническая книга в обычном издательстве и какое количество людей принимает участие в ее рецензировании и пересмотре. Я благодарю всех работников издательства, всех официальных рецензентов и всех, кто участвовал в процессе подготовки издания.

Наконец, и это самое главное, я благодарю своих читателей за покупку книги. Я думаю, что в мире, полном унылых электронных учебников, важно поддерживать выпуск бумажных книг, позволяющих автору зазвучать в полный голос. Онлайн-учебники могут быть отличным ресурсом, но благодаря вашему спросу полноформатные, проверенные и тщательно сверстанные бумажные книги по-прежнему занимают свое место в обучении программированию.

Об этой книге

Торговые марки

В издании упомянуты различные торговые марки. Символ торговой марки при каждом появлении фирменного названия не ставится, так как эти названия используются только в целях издания и в интересах владельца товарного знака, без намерения посягнуть на товарный знак. Слово Python является зарегистрированным товарным знаком Python Software Foundation. Connect Four — торговая марка Hasbro, Inc.

Форум этой книги

Покупка книги включает бесплатный доступ к частному веб-форуму, организованному издательством Manning Publications, где можно оставлять комментарии о книге, задавать технические вопросы, а также получать помощь от автора и других пользователей. Чтобы получить доступ к форуму, перейдите на https://www.manning.com/books/classic-computerscience-problems-in-Python. Узнать больше о других форумах на сайте издательства Manning и познакомиться с правилами вы сможете на странице https://forums.manning.com/forums/about.

Издательство Manning обязуется предоставить своим читателям место встречи, на которой может состояться содержательный диалог между отдельными читателями и между читателями и автором. Однако со стороны автора отсутствуют какие-либо обязательства уделять форуму внимание в каком-то определенном объеме — его присутствие на форуме остается добровольным (и неоплачиваемым). Мы предлагаем задавать автору неожиданные вопросы, чтобы его интерес не угасал! Форум и архивы предыдущих обсуждений будут доступны на сайте издательства, пока книга находится в печати.

Об авторе

 

Дэвид Копец — старший преподаватель на кафедре компьютерных наук и инноваций в колледже Шамплейн в Берлингтоне, штат Вермонт. Он опытный разработчик программного обеспечения и автор книг Classic Computer Science Problems in Swift (Manning, 2018) и Dart for Absolute Beginners (Apress, 2014). Дэвид получил степень бакалавра экономики и степень магистра компьютерных наук в Дартмутском колледже. Вы можете связаться с ним в «Твиттере» по имени @davekopec.

Об иллюстрации на обложке

Иллюстрация на обложке называется «Одежда китайского бонзы или священ­ника»1 и позаимствована из книги «Коллекция платья разных народов, старинного и современного»2, изданного в Лондоне в 1757–1772 годах. Как указано на титульном листе, это гравюры, выполненные на медных пластинах и раскрашенные гуммиарабиком.

Томаса Джеффериса (1719–1771) называли географом короля Георга III. Он был английским картографом, ведущим поставщиком карт своего времени. Он гравировал и печатал карты для правительственных и других государственных учреждений, выпускал широкий спектр коммерческих карт и атласов, особенно Северной Америки. В ходе работы интересовался особенностями одежды населения тех земель, которые обследовал и нанес на карту. Зарисовки костюмов блестяще представлены в этом издании. В конце XVIII века увлечение далекими землями и путешествия ради удовольствия были относительно новым явлением, и коллекции, подобные этой, были популярны, позволяя как туристам, так и тем, кто путешествует, не вставая с кресла, познакомиться с жителями других стран.

Разнообразие иллюстраций в книгах Джеффериса — яркое свидетельство уникальности и оригинальности народов мира в то время. С тех пор тенденции в одежде сильно изменились, а региональные и национальные различия, которые были такими значимыми 200 лет назад, постепенно сошли на нет. В наши дни часто сложно отличить друг от друга жителей разных континентов. Оптимисты могут сказать, что взамен культурному и визуальному многообразию мы получили более насыщенную и интересную личную жизнь (или по крайней мере ее интеллектуальную и техническую стороны).

В то время как большинство компьютерных изданий мало чем отличаются друг от друга, компания Manning выбирает для своих книг обложки, показывающие богатое региональное разнообразие, которое Джефферис воплотил в своих иллюстрациях два столетия назад. Это ода находчивости и инициативности современной компьютерной индустрии.

1Habit of a Bonza or Priest in China.

2A Collection of the Dresses of Different Nations, Ancient and Modern.

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.