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
在数十亿次的搜索中,是您让我们会心一笑。
1700515506
1700515507
嗯,您所需要翻译的罗马数字是1998。
1700515508
1700515509
感谢您!
1700515510
1700515511
在这一次的机缘巧合下,本的奶奶将谷歌的工作人员推向台前。谷歌的搜索引擎每15秒就要处理数百万次请求,这样的数量任何公司都无法做到人工回复。那么,如果谷歌不是拥有互联网神奇魔法的精灵,它是如何成功地找到你想要的答案呢?
1700515512
1700515513
这一切归功于1996年拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin)在斯坦福大学的宿舍里发明的强大而精妙的算法。他们最初想把新算法命名为“网络爬虫”(Backrub),但最终还是决定叫“谷歌”(Google),其灵感来自1后面的100个零。他们的目标是找到一种对互联网上所有的页面进行排序的方法,以帮助大家在这个不断增长的海量数据库中进行检索,所以起这个代表巨大数字的名字似乎特别贴切,而且也很酷炫。
1700515514
1700515515
这并不意味其他的算法不能做这件事,但是那些算法在概念上非常简单。如果你想搜索更多关于“有礼貌的奶奶和谷歌”的信息,现有的算法会将所有包含这些关键词的页面识别出来,并按顺序排列,搜索词出现频率最高的网站会被放在最顶部。
1700515516
1700515517
这种方式虽然有效,却容易被黑客攻击:任何一个花店老板只要在网页的元数据中数千遍地插入关键词“母亲节鲜花”,那么每个想买花的子女电脑上的搜索结果的最顶端就会出现这个花店的链接。你肯定不希望自己的搜索被精明的人设计或者操纵,那么,如何才能对一个网站的重要性给予公正的评价呢?如何判断哪些网站该被过滤掉呢?
1700515518
1700515519
佩奇和布林想出一个聪明的方法:如果一个网站有很多链接指向它,就暗示着其他网站认为这个网站值得访问。其原理是通过其他网站的评估去衡量某个网站的重要性,或者说该网站的访问价值。但是,这种方式也有可能被黑客攻击,比如只需伪造出有1000个网站的链接指向这个花店就行了,这样也会使其被纳入搜索名录。
1700515520
1700515521
为了防止这种情况出现,他们决定给那些获得广泛好评,深受信赖的网站赋予更高的权重。
[
上一页 ]
[ :1.700515472e+09 ]
[
下一页 ]