1700515456
现在让我们回到厨房地板的问题。我们知道,厨房是长方形的,而我们要寻找的是正方形的瓷砖。假定我们讨论的是一种理想状态:瓷砖的尺寸不会受到生产厂家某些规格标准的限制。现在,我们可以开始了。首先,我们找到适合原始形状的最大方形瓷砖;然后,我们寻找到适合剩余部分的最大正方形瓷砖,依此类推……剩余的地面空间逐渐缩小,直至成为一个正方形,这时刚好就可以用一整块瓷砖严丝合缝地填充进去。整个过程不需要切割任何一块瓷砖,如图4-1所示。
1700515457
1700515458
1700515459
1700515460
1700515461
图 4-1
1700515462
1700515463
我们将上述问题的解决思路(算法)用数学的方式加以描述:假设M=36且N=5,则用M除以N得到余数N1 =6,用N除以N1 得到余数N2 =3,而N1 除以N2 根本就没有余数,所以就可以得出3是36和15的最大公约数。
1700515464
1700515465
你可以看到整个计算过程隐含有许多类似于“如果……那么……”的条件判断句式,这是算法的典型特征,也是计算机程序中算法的妙趣所在。欧几里得的古老方法触及了任何算法都应该具备的四个关键特征的核心:
1700515466
1700515467
(1)它应该由一组精确的陈述和明确的指令组成。
1700515468
1700515469
(2)无论输入的参数如何,这个过程都应该完成(不应该进入无限循环)。
1700515470
1700515471
(3)它应该给输入算法的任何参数以答案。
1700515472
1700515473
(4)在理想情况下,它的运行速度应该很快。
1700515474
1700515475
在欧几里得的算法中,任何阶段都不存在歧义。因为余数在每一步运算后都会变小,有限的步数之后它必为零,这时算法就会停止并给出结果。算法的执行时间与问题的规模成正比,数字越大,耗时越长。
1700515476
1700515477
如果最古老的算法可以追溯到2000多年以前,那为什么“算法”这一名词的提出要归功于一位9世纪的波斯数学家呢?穆罕默德·阿尔·花拉子密(Muhammad Al-Khwarizmi)是巴格达智慧馆[3] (great House of Wisdom)的首批负责人之一,他负责将古希腊数学原著翻译成阿拉伯文。“算法”是拉丁文对他名字的翻译。尽管欧几里得的算法在《几何原本》中早已阐明,但欧几里得所使用的语言非常笨拙,而且古希腊人的思维非常几何化(数字只是线条的长度,就连证明的过程都是由图片组成的——有点像我们用瓷砖铺厨房地板的例子),所以他的算法并没有被后世所广泛采用。这是因为图片并不是一种严谨的数学方法,你需要的是代数的语言,即一个字母可以作为变量代表任何数字,而这正是花拉子密的发明。
1700515478
1700515479
你需要一种语言来清楚地表达算法的工作原理,并允许你在不指定数值的情况下讨论数学问题。我们已经看到这种语言能解释欧几里得算法的工作原理,给予数字一个形式化的符号名称——N和M,这些符号可以代表任何数字(我们称之为变量)。这种新的描述语言是一种高度概括的语言,它对数学的发展影响巨大,意味着数学家不需要挨个讨论遇到的所有问题,而可以运用形式化的描述方法来掌握数学运算背后的模式。一个好的算法应该满足上述的第三个特征,就好比代码和程序,它们可以不需要确定具体的参数就能够编译运行。
1700515480
1700515481
算法已成为我们这个时代通行的“货币”,因为它们是计算机系统的完美素材。算法利用我们解决问题的模式,反过来引导我们去找到解决问题的方案。计算机不需要思考,它只要不停地遵循算法、执行指令即可,就像变魔术一样,答案自己就会蹦出来。
1700515482
1700515483
[1] 欧几里得为了满足教学的需要编成了一部《几何原本》。这部书共15卷,是一部集前人思想和欧几里得个人创造性于一体的不朽之作。在此书中,欧几里得把人们公认的一些事实列为定义和公理,以形式逻辑的方法,用这些定义和公理来研究各种几何图形的性质,从而建立了一套从定义、公理出发,论证命题得到定理的几何学论证方法,形成了一个严密的逻辑体系——几何学。而这部书,也就成了欧式几何的奠基之作。——译者注
1700515484
1700515485
[2] 1英尺=0.3048米。
1700515486
1700515487
[3] 中世纪阿拉伯阿拔斯王朝在巴格达建立的全国性综合学术机构,亦称益智宫、哲理大学,由翻译局、科学院和图书馆等机构组成。后世学者誉智慧馆为中世纪阿拉伯“科学的源泉,智慧的宝库,学者的圣殿”。——译者注
1700515488
1700515489
1700515490
1700515491
1700515493
天才与算法:人脑与AI的数学思维 荒岛算法
1700515494
1700515495
当代最非凡的算法莫过于每天帮助数百万人浏览互联网的搜索算法。如果我被扔在荒岛上,只允许随身携带一个算法,我可能会选择谷歌的搜索引擎。(并不是说它会有多大的用处,因为我不太可能连上互联网。)
1700515496
1700515497
20世纪90年代早期,一个专门收录所有互联网网址的目录直到1994年才收录了大约3000个网站。当时的互联网很小,小到可以让你轻而易举地浏览一下就能找到想找的东西。从那时起,互联网就在不断发展。当我开始写这篇文章时,互联网上已经有1 267 084 131个网站了,还没写几句话的工夫,这个数字就上升到了1 267 085 440(通过访问http://www.internetlivestats.com/ 即可查看现存网站数量)。
1700515498
1700515499
谷歌的搜索引擎是如何从数以几十亿计的网站中准确地找出你想要的信息呢?86岁来自维冈的老奶奶玛丽·阿什伍德(Mary Ashwood)在浏览器的搜索栏里非常有礼貌地使用“请”和“谢谢”来提出她的搜索请求,或许她脑海中想象的画面是,电脑另一端一群勤劳的实习生正在埋头苦干,处理浩如烟海的请求信息。她孙子本(Ben)打开笔记本电脑,看到“麻烦你帮我翻译一下这个罗马数字——MCMXCVIII,谢谢你!”的搜索问句后,忍不住在Twitter上向全世界讲述了奶奶的误解。当谷歌工作人员回复他的Twitter消息时,他惊呆了:
1700515500
1700515501
敬爱的本的奶奶,
1700515502
1700515503
愿您一切安好。
1700515504
1700515505
在数十亿次的搜索中,是您让我们会心一笑。
[
上一页 ]
[ :1.700515456e+09 ]
[
下一页 ]