作品简介

本书是一本面向中高级程序员的算法教程,借助Python语言,用经典的算法、编码技术和原理来求解计算机科学的一些经典问题。全书共9章,不仅介绍了递归、结果缓存和位操作等基本编程组件,还讲述了常见的搜索算法、常见的图算法、神经网络、遗传算法、k均值聚类算法、对抗搜索算法等,运用了类型提示等Python高级特性,并通过各级方案、示例和习题展开具体实践。本书将计算机科学与应用程序、数据、性能等现实问题深度关联,定位独特,示例经典,适合有一定编程经验的中高级Python程序员提升用Python解决实际问题的技术、编程和应用能力。

大卫·科帕克(DavidKopec)是香普兰学院(ChamplainCollege)的计算机科学与创新专业助理教授,该学院位于美国佛蒙特州的伯灵顿市。他是一位经验丰富的软件开发人员,也是ClassicComputerScienceProblemsinSwift和DartforAbsoluteBeginners的作者。他拥有达特茅斯学院(DartmouthCollege)的经济学学士学位和计算机科学硕士学位。

作品目录

  • 版权声明
  • 内容提要
  • 引       言
  • 选择Python的理由
  • 什么是经典计算机科学问题
  • 本书中的问题种类
  • 本书的目标读者
  • Python版本、源代码库和类型提示
  • 没有图形界面和UI代码,只用标准库
  • 系列书之一
  • 致      谢
  • 关于作者
  • 资源与支持
  • 配套资源
  • 提交勘误
  • 与我们联系
  • 关于异步社区和异步图书
  • 第1章 几个小问题
  • 1.1 斐波那契序列
  • 1.2 简单的压缩算法
  • 1.3 牢不可破的加密方案
  • 1.4 计算π
  • 1.5 汉诺塔
  • 1.6 现实世界的应用
  • 1.7 习题
  • 第2章 搜索问题
  • 2.1 DNA搜索
  • 2.2 求解迷宫问题
  • 2.3 传教士和食人族
  • 2.4 现实世界的应用
  • 2.5 习题
  • 第3章 约束满足问题
  • 3.1 构建约束满足问题的解决框架
  • 3.2 澳大利亚地图着色问题
  • 3.3 八皇后问题
  • 3.4 单词搜索
  • 3.5 字谜(SEND+MORE=MONEY)
  • 3.6 电路板布局
  • 3.7 现实世界的应用
  • 3.8 习题
  • 第4章 图问题
  • 4.1 地图就是图
  • 4.2 搭建图的框架
  • 4.3 查找最短路径
  • 4.4 最小化网络构建成本
  • 4.5 在加权图中查找最短路径
  • 4.6 现实世界的应用
  • 4.7 习题
  • 第5章 遗传算法
  • 5.1 生物学背景知识
  • 5.2 通用的遗传算法
  • 5.3 简单测试
  • 5.4 重新考虑SEND+MORE=MONEY问题
  • 5.5 优化列表压缩算法
  • 5.6 遗传算法面临的挑战
  • 5.7 现实世界的应用
  • 5.8 习题
  • 第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 四子棋
  • 8.4 超越α-β剪枝效果的极小化极大算法改进方案
  • 8.5 现实世界的应用
  • 8.6 习题
  • 第9章 其他问题
  • 9.1 背包问题
  • 9.2 旅行商问题
  • 9.3 电话号码助记符
  • 9.4 现实世界的应用
  • 9.5 习题
  • 附录A 术语表
  • 附录B 其他资料
  • B.1 Python
  • B.2 算法和数据结构
  • B.3 人工智能
  • B.4 函数式编程
  • B.5 实用的机器学习开源项目
  • 附录C 类型提示简介
  • C.1 什么是类型提示
  • C.2 类型提示的格式
  • C.3 为什么类型提示很有用
  • C.4 类型提示的缺点是什么
  • C.5 更多内容
展开全部