移动开发经典丛书SWIFT常用算法:经典计算机科学问题的SWIFT实现
- ISBN:9787302517092
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:212
- 出版时间:2019-01-01
- 条形码:9787302517092 ; 978-7-302-51709-2
本书特色
Swift程序员**图书。 不必害怕,这不是一本侧重理论的书。作者完美地将这些经典问题与解决真实业务联系起来,为不熟悉经典计算机科学问题的读者提供清晰明了的解释。本书探讨一些优秀的编程习惯、Swift的高级特性、遗传算法以及深度学习算法的内部工作原理。 书中提供了很多面向对象编程、函数式编程和面向协议编程的示例,展示了Swift的许多高级特性,比如泛型和协议扩展。贯穿全书的可重用的框架代码,不仅内容完备、讲解透彻,而且易于阅读。 正如作者明确所指,这不是一本Swift入门书籍,因此读者需要具备良好的Swift工作经验才能更好地发挥本书的作用。 一线Swift程序员**图书,不讲授如何编写完整的应用程序,介绍使用Swift 进行软件开发的基础知识。 探讨编程习惯、Swift高级特性、遗传算法以及深度学习算法的内部工作原理。
内容简介
《Swift常用算法 经典计算机科学问题的Swift实现》通过探究基本的编码技术和算法,进一步提高读者的Swift编程技能。读者在领略书中关于搜索、聚类、图等领域的示例时,脑海中将会重现一些已经淡忘的重要内容,并将找到“新”问题的经典解决方法。作者David Kopec具有出众的能力,将计算机科学的核心原理与诸如应用、数据、性能甚至通过工作面试等现实问题加以关联。 特色内容: ◆ 宽度优先、深度优先、A*搜索算法 ◆ 约束满足问题 ◆ 使用图算法来解决问题 ◆ 神经网络、遗传算法等 ◆ 全部代码示例采用Swift 4.1编写
目录
第1章 小型问题 1
1.1 斐波那契数列 1
1.1.1 尝试递归方法 1
1.1.2 利用基本情形 2
1.1.3 计算缓存技术 4
1.1.4 保持斐波那契简单 5
1.2 简单数据压缩 6
1.3 牢不可破的加密 9
1.3.1 数据排序 10
1.3.2 加密和解密 11
1.4 π的计算 12
1.5 汉诺塔 13
1.5.1 汉诺塔的建模 14
1.5.2 解决汉诺塔问题 15
1.6 实际应用 16
1.7 练习 17
第2章 搜索问题 19
2.1 DNA搜索 19
2.1.1 存储DNA 20
2.1.2 线性搜索 21
2.1.3 二分搜索 22
2.1.4 泛型示例 24
2.2 迷宫求解 25
2.2.1 生成随机迷宫 25
2.2.2 其他迷宫细节 26
2.2.3 深度优先搜索 28
2.2.4 广度优先搜索 32
2.2.5 A*搜索 34
2.3 传教士和食人族 39
2.3.1 问题表示 39
2.3.2 问题解决 42
2.4 实际应用 43
2.5 练习 44
第3章 约束满足问题 45
3.1 构建约束满足问题的解决 框架 46
3.2 澳大利亚地图着色问题 50
3.3 八皇后问题 53
3.4 单词搜索问题 55
3.5 SEND+MORE=MONEY问题 59
3.6 电路板布局问题 61
3.7 实际应用 61
3.8 练习 62
第4章 图问题 63
4.1 构建图框架 65
4.1.1 Edge的具体实现 70
4.1.2 Graph的具体实现 70
4.2 寻找*短路径 73
4.2.1 定义路径 73
4.2.2 广度优先搜索(BFS)回顾 74
4.3 *小化网络建设成本 77
4.3.1 权 77
4.3.2 寻找*小生成树 82
4.4 在带权图中寻找*短路径 88
4.5 实际应用 93
4.6 练习 94
第5章 遗传算法 95
5.1 生物学背景知识 95
5.2 预备知识 96
5.3 通用遗传算法 98
5.4 简单测试 105
5.5 重新讨论SEND+MORE=MONEY问题 108
5.6 遗传算法面临的挑战 112
5.7 实际应用 112
5.8 练习 113
第6章 k-均值聚类算法 115
6.1 预备知识 115
6.2 k-均值聚类算法 120
6.3 基于年龄和地理经度的州长聚类算法 124
6.4 k-均值聚类问题及其扩展 128
6.5 实际应用 129
6.6 练习 130
第7章 简单神经网络 131
7.1 来自生物学的灵感 131
7.2 人工神经网络 133
7.2.1 神经元 133
7.2.2 层 134
7.2.3 反向传播 135
7.2.4 整体情况 137
7.3 预备知识 138
7.3.1 借助随机化 138
7.3.2 快速算法 140
7.4 激活函数 141
7.5 构建神经网络 142
7.5.1 实现神经元 143
7.5.2 层的实现 144
7.5.3 神经网络的实现 146
7.6 分类问题 149
7.6.1 归一化数据 149
7.6.2 经典的iris(鸢尾属植物)数据集 150
7.6.3 葡萄酒分类问题 154
7.7 神经网络问题及其扩展 156
7.8 实际应用 157
7.9 练习 158
第8章 其他问题 159
8.1 背包问题 159
8.2 旅行推销员问题 163
8.2.1 简单方法 164
8.2.2 深层考虑 170
8.3 电话号码助记符 170
8.4 井字棋 172
8.4.1 管理状态 173
8.4.2 极小极大算法 175
8.5 实际应用 179
8.6 练习 180
附录A 术语表 181
附录B 更多资源 187
附录C Swift简史 193
作者简介
David Kopec是佛蒙特州伯灵顿的尚普兰学院计算机科学与创新专业的副教授。他是一名经验丰富的iOS开发人员,也是Dart for Absolute Beginners(Apress出版社,2014年出版)一书的作者。David拥有达特茅斯学院的经济学学士学位和计算机科学硕士学位。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0