新春将至,本公司假期时间为:2025年1月23日至2025年2月7日。2月8日订单陆续发货,期间带来不便,敬请谅解!
- 商品参数
-
- 作者:
大卫·科帕克著|
戴旭译
- 出版社:人民邮电出版社
- 出版时间:1
- 开本:16开
- ISBN:9781376576431
- 版权提供:人民邮电出版社
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。 温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货), 关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
内容介绍
本书是一本面向中*级程序员的算法教程,借助Python语言,用经典的算法、编码技术和原理来求解计算机科学的一些经典问题。全书共9章,不仅介绍了递归、结果缓存和位操作等基本编程组件,还讲述了常见的搜索算法、常见的图算法、神经网络、遗传算法、k均值聚类算法、对抗搜索算法等,运用了类型提示等Python*级特性,并通过各级方案、示例和习题展开具体实践。 本书将计算机科学与应用程序、数据、性能等现实问题深度关联,定位独特,示例经典,适合有一定编程经验的中级Python程序员提升用Python解决实际问题的技术、编程和应用能力。
目录
第 1章 几个小问题 1
1.1 斐波那契序列 1
1.1.1 尝试第 一次递归 1
1.1.2 基线条件的运用 3
1.1.3 用结果缓存来救场 4
1.1.4 自动化的结果缓存 5
1.1.5 简洁到上的斐波那契 6
1.1.6 用生成器生成斐波那契数 7
1.2 简单的压缩算法 7
1.3 牢不可破的加密方案 12
1.3.1 按顺序读取数据 12
1.3.2 加密和解密 13
1.4 计算( 15
1.5 汉诺塔 15
1.5.1 对塔进行建模 16
1.5.2 求解汉诺塔问题 17
1.6 现实世界的应用 19
1.7 习题 20
第 2章 搜索问题 21
2.1 DNA搜索 21
2.1.1 DNA的存储方案 22
2.1.2 线性搜索 23
2.1.3 二分搜索 24
2.1.4 通用示例 26
2.2 求解迷宫问题 28
2.2.1 生成一个随机迷宫 29
2.2.2 迷宫的其他函数 30
2.2.3 深度优先搜索 31
2.2.4 广度优先搜索 35
2.2.5 A*搜索 39
2.3 传教士和食人族 44
2.3.1 表达问题 45
2.3.2 求解 47
2.4 现实世界的应用 48
2.5 习题 49
第3章 约束满足问题 51
3.1 构建约束满足问题的解决框架 52
3.2 澳大利亚地图着色问题 55
3.3 八皇后问题 58
3.4 单词搜索 60
3.5 字谜(SEND+MORE=MONEY) 63
3.6 电路板布局 65
3.7 现实世界的应用 66
3.8 习题 67
第4章 图问题 69
4.1 地图就是图 69
4.2 搭建图的框架 71
4.3 查找*短路径 77
4.4 *小化网络构建成本 79
4.4.1 权重的处理 79
4.4.2 查找*小生成树 83
4.5 在加权图中查找*短路径 89
4.6 现实世界的应用 95
4.7 习题 96
第5章 遗传算法 97
5.1 生物学背景知识 97
5.2 通用的遗传算法 98
5.3 简单测试 105
5.4 重新考虑SEND+MORE=MONEY问题 107
5.5 优化列表压缩算法 111
5.6 遗传算法面临的挑战 113
5.7 现实世界的应用 114
5.8 习题 115
第6章 k均值聚类 117
6.1 预备知识 117
6.2 k均值聚类算法 119
6.3 按年龄和经度对州长进行聚类 124
6.4 按长度聚类迈克尔·杰克逊的专辑 128
6.5 k均值聚类算法问题及其扩展 130
6.6 现实世界的应用 131
6.7 习题 131
第7章 十分简单的神经网络 133
7.1 生物学基础 133
7.2 人工神经网络 135
7.2.1 神经元 135
7.2.2 分层 136
7.2.3 反向传播 137
7.2.4 全貌 139
7.3 预备知识 140
7.3.1 点积 140
7.3.2 激活函数 140
7.4 构建神经网络 142
7.4.1 神经元的实现 142
7.4.2 层的实现 143
7.4.3 神经网络的实现 145
7.5 分类问题 148
7.5.1 数据的归一化 148
7.5.2 经典的鸢尾花数据集 149
7.5.3 葡萄酒的分类 152
7.6 为神经网络提速 155
7.7 神经网络问题及其扩展 156
7.8 现实世界的应用 157
7.9 习题 157
第8章 对抗搜索 159
8.1 棋盘游戏的基础组件 159
8.2 井字棋 161
8.2.1 井字棋的状态管理 161
8.2.2 极小化极大算法 164
8.2.3 用井字棋测试极小化极大算法 167
8.2.4 开发井字棋AI 168
8.3 四子棋 169
8.3.1 四子棋游戏程序 170
8.3.2 四子棋AI 175
8.3.3 用α-β剪枝算法优化极小化极大算法 177
8.4 超越α-β剪枝效果的极小化极大算法改进方案 178
8.5 现实世界的应用 179
8.6 习题 179
第9章 其他问题 181
9.1 背包问题 181
9.2 旅行商问题 186
9.2.1 朴素解法 186
9.2.2 进阶 191
9.3 电话号码助记符 191
9.4 现实世界的应用 193
9.5 习题 194
附录A 术语表 195
附录B 其他资料 201
附录C 类型提示简介 205
作者介绍
大卫·科帕克(David Kopec)是香普兰学院(Champlain College)的计算机科学与创新专业助理教授,该学院位于美国佛蒙特州的伯灵顿市。他是一位经验丰富的软件开发人员,也是Classic Computer Science Problems in Swift和Dart for Absolute Beginners的作者。他拥有达特茅斯学院(Dartmouth College)的经济学学士学位和计算机科学硕士学位。
关联推荐
用Python语言求解计算机科学的经典问题
1