描述
开 本: 32开纸 张: 纯质纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787550728271
一本有趣易懂、轻松玩转算法的科普书!
本书共12章,介绍分析了改变世界的12个算法,总共介绍了二进制算法、快速排序、动态规划、深度优先和广度优先搜索、傅里叶变换、Dijkstra 最短路径算法、A* 搜索算法、RSA非对称加密算法、随机数生成算法、数据压缩算法、Page Rank算法、神经网络算法。以浅显准确的语言,生动有趣的漫画,讲解这个算法的来龙去脉,从产生、发展、应用等角度详细解读了各个算法的逻辑,对于理解计算机、人工智能、编程等领域的基础原理,非常有意义。是一本面向大众的科普图书。
目 录
第一章 0 与 1 的共舞:从二进制开始 001
第二章 思想迷宫的捷径:从递归引入 028
第三章 细致入微的园丁:排序算法 045
第四章 广阔棋盘的博弈:动态规划 065
第五章 星系联结的天网:图论与搜索算法 083
第六章 无尽地图的向导:最短路径算法 100
第七章 深邃黑暗的钥匙:加密算法 118
第八章 玩世不恭的微风:随机算法 155
第九章 变换身形的魔术:数据压缩算法 178
第十章 古老语言的吟唱:PageRank 算法 206
第十一章 智慧之树的枝丫:神经网络 227
第十二章 知识梦境的行者:深度学习 251
后 记 271
序
在人类探索文明的进程中,陆续诞生了许多伟大的发明,如火种、轮子、电、互联网,它们都在各自的时代产生了深远的影响。但在这些物质发明之外,还有一类不太被人注意却同样拥有巨大影响力的东西 —算法。
算法如同无形之手,悄悄地改变着我们的生活、工作和思考方式。
本书从简单的二进制编码,到复杂的深度学习模型,每一种算法背后都隐藏着人类智慧的火花,它们如魔法般运作,解决了一个又一个前所未有的难题。
当我们使用搜索引擎寻找所需信息,或者依赖导航软件寻找目的地时,其实都在与算法打交道。它们不仅仅是冰冷的代码,更是承载了无数工程师和科学家的辛勤努力与创新思考的结晶。它们是这个时代的驱动力,将我们从烦琐的计算与决策中解放出来,让我们有更多的时间去创新、探索与体验。
算法这个词汇的历史可以追溯到公元 9 世纪的数学家阿尔·花剌子米(Al-Khwarizmi),他的名字和他的著作在数学和算法的发展史上占有非常重要的地位。
阿尔·花剌子米是波斯人,生活在阿拔斯王朝的巴格达。在那个时代,巴格达是全世界的知识与学术中心之一。阿尔·花剌子米是一位天文学家、地理学家,而最著名的身份是数学家。他的著作《积分和方程计算法》(又译《代数》Kitabal-Jabr wal-Muqabala)是他名字永垂史册的主要原因。这本书不仅介绍了代数学(al-jabr 是“代数”这个词的词源),还对将印度数字系统(包括 0 的概念)介绍到阿拉伯世界和通过后来的翻译介绍到欧洲作出了巨大贡献。
这本书的拉丁文译本标题是“Algoritmi de numero Indorum”,其中“Algoritmi”是阿尔·花剌子米名字的拉丁化表达,而“de numero Indorum” 意 味 着“关 于 印 度 数 字 的”。 后 来,“Algoritmi”一词就被欧洲学者们用来指代使用阿拉伯数字进行的各种数学计算过程,这个词最终演化成了“algorithm”,意为“算法”。
随着时间的推移,算法这个词汇的含义已经从最初的数学计算规则扩展到更为广泛的程序和规则,现在它指代任何一套定义清晰的操作步骤,通常是指为解决特定问题或完成特定任务而设计的一系列指令。在计算机科学中,算法是执行各种计算、数据处理和自动推理任务的基础。现代算法包括搜索算法、排序算法、计算算法、优化算法等,它们是现代科技和互联网世界不可或缺的一部分。
这也解释了为什么算法在计算机编程和技术领域中如此重要。无论是搜索引擎为你找到相关信息,还是社交媒体为你推荐新的朋友和内容,背后都是复杂的算法在起作用。它们帮助计算机理解如何根据给定的输入信息作出决策或完成任务。
而且,算法的重要性并不限于技术领域。在数学、物理学、生物学乃至经济学中,算法都被视为一种工具,帮助研究人员解决复杂的问题。因为算法提供了一个结构化的框架,使得问题可以被分解、分析并得出解决方案。
算法是如此关键,所以其设计和优化常常需要深入学习并掌握专业知识和经验。不同的问题需要不同的算法,而同一个问题也可能有多种不同的算法解决方案。研究者们持续地努力寻找更加快速、简洁和高效的算法,以满足日益增长的计算需求。
好了,读者们,让我们开始算法之旅吧。
第一章 0与1的共舞:从二进制开始
尽管二进制在现代电子计算机的发展史中扮演了至关重要的角色,但作为一种数学概念,它比电子计算机的出现要早得多。这种以两个数字符号(通常是 0 和 1)来表示数值的系统可以追溯到古代文明。
1646 年,莱布尼茨(G.W.Leibniz)出生之际,欧洲大陆正面临着一场巨大的历史风暴。位于莱比锡以西 300 公里处,德国王室和欧洲各大势力的代表已经连续会晤三年之久,而这场马拉松一般的谈判还将继续进行两年。这场旷日持久的战争的最终名字被刻在历史的石碑上,被称为“三十年战争”。
“三十年战争”始于神圣罗马帝国内部的冲突,后演变成一场欧洲范围内的大规模冲突。战争的导火索是波希米亚人对哈布斯堡家族统治的反抗,最终以哈布斯堡家族的失败并签署世界上首个国际公约画上句号。这场冲突带来了巨大的人口伤亡,各个日耳曼邦国的人口损失高达 25% 至 40%。在德意志各诸侯国,近 50% 的男性壮丁不幸阵亡,而平民中有约 800万人失去了生命。
1653 年 7 月,莱布尼茨在度过了他 7 岁生日后不久,便踏入了莱比锡两所主要的拉丁学校之一的尼古拉学校。他在那里又度过了将近 8 年的学习时光,直到 1661 年复活节。与我们后来对莱布尼茨的认识不同,他的早期教育并没有涉及太多数学领域。这所学校的教学主要集中在希腊文、修辞和逻辑方面,而对算术、几何、天文和音乐的涉猎是非常有限的。
另一方面,莱布尼茨也投入了大量时间来进行自学。他的父亲是莱比锡大学的哲学教授,在莱布尼茨仅 6 岁时便去世了,给他留下一个庞大的图书馆。8 岁时,莱布尼茨就开始涉足父亲图书馆的馆藏,在这里,莱布尼茨学到了拉丁文。
大约在 1667 年的秋天,莱布尼茨告别纽伦堡,开始一场当时许多欧洲特权阶层年轻学子都梦寐以求的大型学术之旅,以丰富自己的学识。他的首要目的地是荷兰,随后踏足英国、法国以及意大利。这次旅途并非一帆风顺,因为在 1667 年,这些地方仍然受到瘟疫的威胁。
莱布尼茨最终选择谋求一份正规的职业。受到老师的影响,莱布尼茨显然也被法律所吸引,他在莱比锡的毕业论文涉及亚里士多德的形而上学,由此获得了法学学位,同时也获得了一份对应的工作,负责修订基于罗马法的法律体系。
很快,莱布尼茨就迎来了自己人生中最大的转折点。
1672 年,一身光鲜的莱布尼茨踏上巴黎的土地,受到了太阳王路易十四的亲自接待。莱布尼茨当时的身份是法国的高级外交官,他的任务是前来说服路易十四不要对德国展开军事进攻。然而,路易十四并没有立刻给出回答,而是邀请莱布尼茨在巴黎暂时安顿下来。法国皇室对这位年轻外交官十分礼遇,允许他进入最高级别的社交圈子。
当时的巴黎是知识与学术的繁荣之地,会聚了众多著名学者,其中就包括数学家克里斯蒂安·惠更斯(Christiaan Huygens)。当时 43岁的惠更斯已经取得了一系列重要的成就,他发明了摆钟,并且还是土星环的发现者。但彼时他尚未提出光的波动理论(惠更斯认为光是由波动构成的,就像石块投入池塘中会产生波浪一样,光也是通过波动传播的),这一理论后来成为他最重要的贡献之一。在与莱布尼茨的交流中,惠更斯敏锐地察觉到了这位年轻人的数学才华,并开始亲自指导他学习数学。
在 1673 年第一次访问伦敦时,莱布尼茨展示了一台能够执行四种基本算术运算的计算机模型,这一发明创造引起了广泛的关注,最终使他被选为英国皇家学会的会员。
早在 30 年前,有另外一位知名的数学家曾经做过类似的发明。
17 世纪 40 年代,法国杰出的数学家和哲学家布莱瑟·帕斯卡(Blaise Pascal)为了帮助父亲解决繁重的税务计算工作,发明了一台机械式的计算器,这一发明被称为“帕斯卡计算器”。这台计算器的表面装有一系列金属齿轮,每个齿轮的边缘都刻有数字 0 到 9。操作员使用一个小手柄,类似于转盘电话的拨号方式,选择并输入相应的数字,从而进行加法或减法运算。当需要进位或借位时,齿轮之间的传动结构会自动引导前一个齿轮转动一个数字。
这台帕斯卡计算器不仅是世界上第一台获得专利并进行商业销售的计算器,也是当时计算技术领域的一项革命性发明。它极大地简化了复杂的数学计算过程,减轻了人工计算的负担,提高了计算的准确性和效率。
……
评论
还没有评论。