Python是世界上最流行的编程语言之一,人们从不同的背景成为Python程序员。有些人受过正规的计算机科学教育。其他人则将Python学习作为一种爱好。还有一些人在专业环境中使用Python,但他们的主要工作不是做软件开发人员。这本中级书中的问题将帮助经验丰富的程序员在学习语言的某些高级功能的同时,从他们的CS教育中重新了解自己的想法。自学成才的程序员将通过学习所选语言(例如Python)中的经典问题来加速CS教育。本书涵盖了各种各样的问题解决技术,以至于每个人都有真正的收获。
这本书不是对Python的介绍。相反,这本书假设您已经是一名中级或高级的Python程序员。尽管这本书需要Python3.7,但我们并不认为它能够精通最新版本的Python的每一个方面。事实上,这本书的内容是建立在这样一个假设上的:它将作为学习材料,帮助读者达到这样的掌握。另一方面,这本书不适合完全不熟悉Python的读者。
目录:
介绍
小问题
斐波那契序列
简单的压缩
牢不可破的加密
计算圆周率
汉诺塔
实际应用
练习
搜索问题
DNA搜索
迷宫求解
传教士和野人问题
实际应用
练习
约束满足问题
构建约束-满足问题框架
澳大利亚的地图着色问题
八皇后问题
单词搜索
SEND+MORE=MONEY
电路板布局
实际应用
练习
图论问题
地图作为图
构建图框架
最短路径查找
最小化网络建设成本
求加权图中的最短路径
实际应用
练习
遗传算法
生物背景
一种通用遗传算法
一个天真的测试
SEND+MORE=MONEY revisited
优化列表压缩
遗传算法的挑战
实际应用
练习
k-means聚类
预备工作
k-means聚类算法
按年龄和经度对州长进行聚类
按长度聚集迈克尔·杰克逊的专辑
K-means聚类的问题和扩展
实际应用
练习
相当简单的神经网络
生物学基础?
人工神经网络
预备工作
构建网络
分类问题
加速神经网络
神经网络问题和扩展
实际应用
练习
对抗搜索
基本棋盘游戏组件
井字游戏
四子棋
除了α-β剪枝之外的极大极小改进
实际应用
练习
其他问题
背包问题
旅行推销员问题
电话号码助记符
练习
附录A 词汇表
附录B 更多资源
附录C 类型提示简介