《改变未来的九大算法》
作者解释了数亿人每天使用的一些算法,不是如算术和排序这类简单的算法,而是更复杂的事情——如何确定网页的重要性,以及无法被计算的问题。当然作者也揭示了计算机科学家对算法着迷的原因:它们如此实用、美观和优雅。这是一本科普读物,作者致力于将计算机科学的复杂思想为大众做深入浅出的解读。通过简明的语言和生动的例证,阐述了计算机的核心算法:搜索引擎、PageRank、公钥加密、纠错码、图形识别、数据压缩、数据库、数字签名等。在解释这些算法的同时,作者也向我们展示了充满科学原创精神的计算机世界:每一种算法的提出不但拓展了虚拟世界的领域,它同时也是人类智慧的彰显,可以被广泛运用于众多领域,以推动商业和社会文明的发展。作者用日常类比巧妙地解读核心算法,这对没有数学背景的读者来说很有用。算法这个词,是最近这几年越来越热的一个词,尤其是大数据、人工智能这些概念背后,都离不开一个算法。算法是一张精确的处方,他按顺序详细列出了解决一个问题所需要的具体步骤。每步都必须绝对精确,没有任何人类意图或推测掺杂其中。 人们每天都会大量的用到搜索,算法的不断进步,使人们更快的得到他们想要的答案。作者并没有试图“用科学迷惑我们”,也没有“卖弄”其数学才能。相反,他采用了我们都能理解的方式。第一章描述了搜索引擎如何使用索引寻找与请求匹配的文件,而第二章则解释了网页排名(PageRank)算法——谷歌公司为保证匹配度最高的文件出现在搜索结果列表顶部的原始算法。第三章就是在解释密钥交换过程的实现原理。第四章的主题是纠错码(Error Correcting Codes),这是我们经常使用但没有意识到的另一类算法。事实上,纠错码极有可能是有史以来唯一一种使用次数最频繁的伟大算法。纠错码可以让计算机识别并纠正在储存或传输数据时出现的错误,而不必依靠备份或再次传输。第五章稍微有点儿特殊,它介绍的是图形识别算法(Pattern Recognition Algorithm)。图形识别算法也能进入伟大的计算机科学思想榜单,但它违背了第一条标准:要被普通计算机用户每天用到。第六章讨论了压缩算法。压缩算法组成了另一组使计算机变成我们“指尖精灵”的伟大思想。第七章讲到了数据库中运用的一些基础算法。这一章侧重为实现一致性——指一个数据库中的关系不互相冲突——而采用的聪明技巧。在第八章,我们会了解理论计算机科学无可争议的瑰宝之一:数字签名。第九章采取了截然不同的视角:与其描述一种已经存在的伟大算法,我们不如去了解一种假如存在则必然会伟大的算法。不过我们会震惊地发现,这种特别伟大的算法不可能存在。这表明计算机解决问题的能力存在绝对极限,而我们将简单地从哲学和生物学角度探讨这一结果的应用。 计算机是多用的,但并不是万能的,“有些程序不可能存在”。有些问题根本不可能通过计算机解决,但我们不该因此停止思考计算机伟大思想的未来。这是一本关于关键算法的指南,阅读起来愉悦且轻松。它传达出一种奇妙的感觉——让电脑发挥魔力的是美丽的科学,而非技术,这非常精彩。