编程的乐趣:经典Python算法题知多少

栏目: 编程工具 · 发布时间: 5年前

内容简介:谜题趣味非凡。顶级谜题的解可没那么浅显易得,需要灵光一闪才能发现。算法谜题是指谜题的解法就是算法,解题的步骤可以被机器自动执行。算法可以用英文或者其他任何自然语言来描述,但是为了更加精确,往往会用伪代码进行描述。之所以称为“伪代码”,是因为它尚未细化到足以在计算机上运行的程度,与用编程语言编写的代码不大一样。当今世界有越来越多的人以计算机编程为业。为了学习编程,我们首先要通过简单的例子学习基本的编程结构,例如赋值语句和控制循环之类,而编程习题往往涉及将算法的伪代码转译为用所学编程语言编写的代码。程序员同样能

谜题趣味非凡。顶级谜题的解可没那么浅显易得,需要灵光一闪才能发现。算法谜题是指谜题的解法就是算法,解题的步骤可以被机器自动执行。算法可以用英文或者其他任何自然语言来描述,但是为了更加精确,往往会用伪代码进行描述。之所以称为“伪代码”,是因为它尚未细化到足以在计算机上运行的程度,与用编程语言编写的代码不大一样。

当今世界有越来越多的人以计算机编程为业。为了学习编程,我们首先要通过简单的例子学习基本的编程结构,例如赋值语句和控制循环之类,而编程习题往往涉及将算法的伪代码转译为用所学编程语言编写的代码。程序员同样能从求解谜题所需的分析技能中获益。无论是将规格说明转换为编程结构,还是定位早期代码中的错误(也就是调试过程),这些分析技能都不可或缺。

下列21个谜题,你都解过哪一个?

谜题1 保持一致 1

谜题2参加派对的最佳时间

谜题2参加派对的最佳时间

谜题4让皇后保持分离

谜题5请打碎水晶

谜题6寻找假币

谜题7跳到平方根

谜题8猜猜谁不来吃晚

谜题9美国达人秀

谜题10多皇后

谜题11请满铺庭院

谜题12汉诺塔

谜题13没条理的工匠

谜题14再也不玩数独了

谜题15统计零钱的组合方式

谜题16贪心是好事

谜题17字母也疯狂

谜题18充分利用记忆

谜题19要记得周末

谜题20六度分隔

谜题21问题有价

以上谜题出自刚刚上架的 《编程的乐趣 用 Python 解算法谜题》

编程的乐趣:经典Python算法题知多少

本书中每个谜题的开始都会介绍一道谜题,其中不少谜题都脍炙人口,以各种变体形式在一些出版物和网站上出现过。在经历一两次失败的解谜尝试之后,突然灵光一闪,一种搜索策略、一个数据结构、一个数学公式跃然而出,答案就这么自行现身了。有时候会对谜题给出明显“暴力”的解法,本书会先解释相关的算法与代码,再将其解释为“失败”,然后再“捧出真经”,引出更加优雅和高效的解法。

谜题的解法正是需要编写的代码的规格说明书。读者要先了解代码要做的事情,然后再看代码。我坚信这是一种很强大的教学理念,因为这把对代码功能的理解与编程语言语法和语义的理解分离开来。对于理解代码所需的语法和语义,将本着“现学现用”的原则进行介绍。

由谜题的物理世界到程序的计算机世界虽然很有趣,但并不总是一帆风顺。在某些情况下,必须假定某些操作在计算机世界中效率低下,因为其在物理世界中就是如此。本书会尽量减少这种情况的出现,但是仍无法完全避免。相信这不会对学习造成困扰,而且在极少出现的几处地方,书中都会明确指出。

读者可以采取多种方式来阅读和使用本书。如果仅对谜题本身及其答案感兴趣,完全可以在想出自己的解法或阅读本书给出的解法后即刻停止。但我不希望读者就此止步,因为讲解如何得出解法并转成可执行代码是写作本书的主要目的。读完整个谜题将对编写实用的程序所需的要素有很好的感知,实用的程序能供任何人自行运行和使用。我尽力确保对Python语法和语义的介绍能满足解谜代码的需要,但如果读者对Python语法、语义和库等有任何疑问,则Python的官方网站上有极佳的学习资源,edX/MITx 6.0001x课程也有对Python编程的很好介绍。

如果读者能在自己的计算机上安装和运行Python,就会从本书收获更多东西。这可以通过访问Python的官方网站来实现。书中所有谜题解法的代码都可以从MIT出版社网站下载。这些代码已在Python 2.7及以上版本(包括3.x版本)中测试过。当然,欢迎读者忽略这些可下载的代码,而编写自己的解题代码。强烈建议读者采用与书中示例不同的输入运行一下从网站下载或自行编写的程序。尽管我确实已尽力去除程序中的bug,但仍不能保证代码没有错误。注意,加入对输入的检查会让代码显得零乱,因此,书中给出的代码假定输入符合谜题的描述,如果收到出乎意料的输入就不一定会有预期的表现了。为了加深对编程的理解,有一种最好的方式就是不断改进每一个谜题的代码,严格地检查格式错误的输入。

在每个谜题的结尾都会有几道编程的习题。这些习题的难度与所需编写的代码量各有不同。做完每个谜题的习题,将有助于充分掌握本书的内容。读者必须对谜题相关的代码有足够的理解,然后才有能力对其做出修改或改进其功能。书中的一部分习题包含了对错误输入的检查。标为“难题”的习题需要相当大的代码量,或要对已给出的谜题代码进行重构。其中的一部分难题可视为已介绍谜题的高级版本。本书没有提供习题和谜题的答案,教学人员可到MIT出版社网站的本书页面去获取。

购买通道: https://item.jd.com/12527917.html


以上所述就是小编给大家介绍的《编程的乐趣:经典Python算法题知多少》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java Web整合开发王者归来

Java Web整合开发王者归来

刘京华 / 清华大学 / 2010-1 / 99.80元

《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》全面介绍了Java Web开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JST......一起来看看 《Java Web整合开发王者归来》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码