Python中文网

编程的乐趣 用Python解算法谜题

cnpython320

编程书籍推荐:编程的乐趣 用Python解算法谜题,由人民邮电出版社2019-06-01月出版,本书发行作者信息: 斯里尼·德瓦达斯(Srini Devadas) 著,戴旭,李亚舟,许亚运 译此次为第1次发行, 国际标准书号为:9787115509437,品牌为异步图书, 这本书采用平装开本为16开,附件信息:未知,纸张采为胶版纸,全书共有223页字数万 字,值得推荐的Python Book。

此书内容摘要

这是一本介绍通过解决复杂谜题来学习编程的书,书中的代码用Python语言编写。与以往的编程书不同,本书将对代码功能的理解与编程语言语法和语义的理解分离开来,从解每个谜题开始,先给出解谜题的算法,随后用Python语法和语义实现对应的算法,并适当做出解释。本书包含了21个谜题,其中很多谜题都广为流传,如多皇后、汉诺塔、在几秒钟内解决数独问题、验证六度分隔猜想等,每个谜题后面都配有不同难度的编程习题,帮读者加深对相关算法的理解。

本书在算法谜题的趣味性和计算机编程的实用性之间搭建了一座桥梁,内容饶有趣味,讲述易于理解,适合已掌握初级编程概念并对算法感兴趣的学习者阅读和参考。

关于此书作者

作者简介

斯里尼·德瓦达斯(Srini Devadas) 麻省理工学院(MIT)计算机科学和人工智能实验室(CSAIL)电子工程和计算机科学教授,自1988年起在麻省理工学院任教。他目前的研究兴趣主要集中在计算机体系结构、计算机安全和应用密码学领域。他因其研究成就获得了2014年IEEE计算机学会技术成就奖、2015年ACM/IEEE理查德·牛顿技术影响力奖和2017年IEEE华莱士·麦克道尔奖。他在MIT教授编程基础、算法导论和算法设计与分析等课程。

译者简介

戴旭高级项目管理师,从事金融信息化和电子政务工作多年,现为杭州城市大脑研发团队成员,译有《Python快速入门》《Android平板电脑开发秘籍》《编写高性能的.NET代码》等。
李亚舟现任职于知乎,负责数据库平台,关注存储、分布式系统、容器等技术,译有《Haskell趣学指南》。
许亚运曾任职于高德、饿了么,有多年互联网行业后端开发经验,爱好Python,喜欢探索新技术。

编辑们的推荐

很少有初学编程的人愿意为了编程而编程,本书创新地通过求解有趣的谜题来教授读者编程,为枯燥的编程学习过程注入了很强的趣味性,谜题是来自真实世界的应用,饶有趣味、易于描述。

学习编程是从解谜题开始的,在经历一两次失败的解谜尝试后,读者会豁然开朗——可能是一种搜索策略、一个数据结构或一个数学公式,谜题的算法就跃然而出了,剩下的事情就是用Python语法和语义将算法“翻译”成可实现的代码。

读者只需掌握初级的编程概念,就可以阅读本书。本书包含了21 个谜题,其中很多谜题都家喻户晓并广为流传,如多皇后、汉诺塔、在几秒钟内解决数独问题、六度分隔等。每个谜题后面都配有不同难度的编程习题,读者可以先自行完成编码,再对照本书给出的答案进行探索和提升。

编程的乐趣 用Python解算法谜题图书的目录

谜题1 保持一致 1
1.1寻找想法相同的连续人员2
1.2字符串、列表和元组3
1.3从算法到代码4
1.4代码优化7
1.5列表创建与修改7
1.6作用域8
1.7算法优化9
1.8单遍算法9
1.9应用10
1.10习题11
谜题2参加派对的最佳时间13
2.1反复检查时间14
2.2聪明地检查时间16
2.3有序的表示20
2.4习题20
谜题3拥有(需要一点校准的)读心术22
3.1编程完成助手的工作24
3.2编程完成魔术师的任务28
3.3独自掌握技巧29
3.4信息编码31
3.54张牌的魔术戏法31
3.6习题32
谜题4让皇后保持分离34
4.1系统地搜索36
4.2用二维列表(数组)表示棋盘38
4.3用一维列表(数组)表示棋盘41
4.4迭代枚举45
4.5习题46
谜题5请打碎水晶47
5.1两颗球的高效搜索48
5.2d颗球的高效搜索49
5.3对两颗球减少抛球次数53
5.4习题54
谜题6寻找假币55
6.1分治55
6.2递归分治57
6.3三进制表示60
6.4称量谜题一个流行的变体61
6.5习题61
谜题7跳到平方根62
7.1迭代查找62
7.2折半查找65
7.3二分搜索67
7.4三分搜索69
7.5习题69
谜题8猜猜谁不来吃晚餐71
8.1第 一次尝试72
8.2始终寻找最大选择73
8.3生成所有组合74
8.4移除不友好的组合76
8.5选择最大组合76
8.6优化内存使用77
8.7应用78
8.8习题79
谜题9美国达人秀81
9.1每次生成并测试一个组合83
9.2确定缺少一门绝活的组合84
9.3应用85
9.4习题86
谜题10多皇后88
10.1递归求取最大公约数88
10.2递归获取斐波那契数列89
10.3递归求解N皇后问题91
10.4递归的应用94
10.5习题96
谜题11请满铺庭院98
11.1归并排序99
11.2归并排序的执行与分析101
11.3基线条件即2 × 2庭院102
11.4递归步骤103
11.5列表推导式的基础知识107
11.6美观打印107
11.7另一个满铺谜题109
11.8习题109
谜题12汉诺塔111
12.1汉诺塔的递归解决方案112
12.2相邻汉诺塔的递归解决方案114
12.3与格雷码的关系117
12.4习题118
谜题13没条理的工匠121
13.1分治时的围绕基准点分拣122
13.2与排序算法的关系123
13.3原地划分126
13.4排序也疯狂129
13.5习题129
谜题14再也不玩数独了131
14.1递归式数独求解132
14.2递归搜索过程中的推理136
14.3数独谜题的难度140
14.4习题141
谜题15统计零钱的组合方式143
15.1钞票的递归选取143
15.2消除重复145
15.3用最少的钞票支付147
15.4习题148
谜题16贪心是好事150
16.1贪心算法151
16.2最短历时规则151
16.3最早开始时间规则151
16.4最少冲突规则152
16.5最早结束时间规则152
16.6贪心算法何时有效157
16.7习题158
谜题17字母也疯狂160
17.1每次找到一组变位词160
17.2通过排序对变位词进行分组162
17.3通过散列操作对变位词进行分组164
17.4字典165
17.5用字典对变位词进行分组167
17.6散列表169
17.7习题171
谜题18充分利用记忆173
18.1递归解决方案173
18.2回溯硬币的选择过程175
18.3memoization技术178
18.4避免使用异常179
18.5动态规划180
18.6习题180
谜题19要记得周末184
19.1找到分区185
19.2二分图的判别187
19.3图的表示189
19.4图的着色192
19.5习题193
谜题20六度分隔195
20.1广度优先搜索197
20.2集合198
20.3在广度优先搜索中使用集合199
20.4历史202
20.5习题203
谜题21问题有价205
21.1用字典构造二叉查找树207
21.2字典形式下的二叉查找树操作209
21.3面向对象风格的二叉查找树212
21.4回到谜题:算法216
21.5解决谜题的代码218
21.6多种数据结构的对比222
21.7习题222

部分内容试读

暂无.

关于此书评价

暂无.

书摘内容

暂无.

编程的乐趣 用Python解算法谜题最新最全的试读、书评、目录、简介信息由Python中文网整理提供。