研究之美-程序员宅基地

技术标签: 测试  c/c++  

研究之美

[美]D.E.Knuth(高德纳)著

高博译

ISBN 978-7-121-15553-6

2012年1月出版

定价:49.00元

16开

204页

宣传语:算法大师高德纳(Donald E.Knuth)教您如何自我发现,探索真理!中国科学院倪光南院士、微软全球副总裁张亚勤博士倾情推荐!

内 容 简 介

本书是计算机科学大师、“算法分析之父”高德纳(Donald E.Knuth)在20世纪70年代旅居挪威时撰写的有关计算机科学的全新基本数学结构的情景小品。全书以一对追求自由精神生活的青年男女为主人公,以对白形式展开了一段对于该种全新结构的发现、构造,以及在算法和效率方面的应用之研究。在此过程中,本书充分展示了计算机科学的从业人员进行全新领域探索时所必备的怀疑、立论、构造、证明、归纳、演绎等逻辑推理和深入反思的能力。本书可以看作是读懂高德纳的艰深著作《计算机程序设计艺术》和《数学基础》的钥匙。

作者简介
高德纳(DonaldErvinKnuth,1938年1月10日-),出生于美国威斯康辛州密尔沃基市(Milwaukee),著名计算机科学家,ACM图灵奖、美国国家科学奖、IEEE先锋奖和京都奖获奖者,斯坦福大学计算机系荣誉退休教授。高德纳在计算机科学及数学领域发表了多部具广泛影响的论文和著作,其中最著名的是《计算机程序设计艺术》(TheArtofComputerProgramming)多卷本。他开创了算法分析的领域,被誉为“算法分析之父”,并在数个理论计算机科学的分支做出奠基性的贡献。此外,他还是排版软件和字体设计系统METAFONT的发明人。
译者简介
高博,1983年出生,2004年毕业于上海交通大学计算机系。现在盛大集团任创新院高级研究员,负责集团新产品测试业务,以及移动互联网方向创新技术研究和团队建设工作。近年来翻译出版了《C++语言99个常见编程错误》、《微软的软件测试之道》和《设计原本》等多本书籍,累计发表各类文字计百万余字,曾将《论语》译为英文。

名家推荐

高德纳不仅是现代计算机科学的先行者,更是所有软件工程师们的偶像。在他的笔下,程序设计变成了艺术,抽象数学变成了趣味故事。本书以小说形式阐述了数论的奥妙,使读者如同身临其境,经历了一次生动的创新思维的培训,而这正是我们课堂教学中所缺少的东西。

——中国工程院院士 倪光南

D.E.Knuth 是美国最有名望的计算机科学家,也是一流的数学家。这本妙趣横生的书以小说形式把另一位世界一流数学家Conway 的超实数理论发挥得淋漓尽致,解释得天衣无缝。一对情侣在远足探险中以好奇之心破解古人留下的奇怪数字谜团,在逻辑推理取胜的同时,也收获了爱情。好奇是一切探索之源泉。在此,我们一起走进扑朔迷离的数系世界。

——美国南密西西比大学数学系正教授 丁玖

推荐序

最近几年科学技术和全球市场的变迁,已经越来越清楚地让我们看清了一个事实,那就是持续创新不仅已经成为企业发展的重要基石,甚至已经成为了企业生存的必要前提。这对微软和其他意图在激烈竞争中立于不败之地的企业来说,意味着要拥有马拉松式的创新耐力。

创新的基础是研究,主体是人才。研究机构的建设和创新人才培养,也是我们一直以来的专注和思考。没有研究人才多年如一日地甘于对未知世界的孤独探索,那些能够极大地提高生产力的科技,将不会诞生。

高德纳先生是世界公认的算法大师,他在计算机基础科学方面的很多研究成果,对现在乃至未来的信息产业,已经产生和必然发生深刻影响。他洋洋四卷的《计算机程序设计艺术》,更是被全世界的数学家和工程师奉为圭臬。

我很高兴地看到,他在38 年前写成的一本讨论数学研究的书,能在今天被传译给中国读者。读完后,意料之中的是,本书果然反映了大师的智慧和思路;意料之外的是,原来数学也能以小说的形式来写!高德纳通过引人入胜的对白和推理来展开情节,为我们展现了数学、方程式、逻辑和算法之美。

研究是一种揭示客观规律的行为,但研究行为自身,也有其独特规律。高德纳先生的这本书,是他几十年智力和思维活动和工业实践的总结,从更高的层次上为我们揭示了研究行为自身的客观规律。从这个意义上说,本书的中文译名《研究之美》,是恰如其分的。

近些年,中国每年毕业的理工科毕业生有七八十万。这些有望成为具备研究能力、掌握研究规律的专门人才,是中国未来竞争力的关键。但遗憾的是,我也看到不少年轻人耐不住枯燥与寂寞,而中途放弃。

为此,衷心祝愿本书能为有志于投身研究事业的读者们,打开一扇趣味之门!

张亚勤

微软全球副总裁

微软亚太研发集团

2011 年12 月1 日于北京

数学是模式的科学。而我则尤其喜爱这样的事实,就是我们能够运用数学推理,由两三条平凡的规则出发,最终得出令人惊喜的结果。

在所有的数学领域中堪称是最美妙的主题之一,就是超现实数理论。它是由John Horton Conway 在1970 年左右发现的。在他告诉我这个理论数月之后,我产生了一个想法:如果能以他的绝妙想法为基础写个短篇故事,那该多么有趣呀。正如歌剧就是美妙的音乐加上那么一点儿情节,我也想在讲述这样美妙的数学时加上那么一点儿情节。

写作此书时我正旅居挪威。1973年1 月,我在奥斯陆市区租了一间宾馆的客房,离易卜生1的故居很近,所以我指望能通过这种方式沾上点儿易卜生的灵气。然后,我花了六个工作日完成了这本小册子。而到了第七日,我就停下来休息。2这是我这辈子最快乐的一星期!

如今,事情已经过去了近四十年。我十分高兴地看到,全世界读者如此地喜爱这个故事,所以他们将它翻译成了很多不同的语言。最近一段时间,我读了不少有关“无国界医生”和“无国界工程师”3的故事,我也倾向于认为自己是一名无国界数学家。经历了千百年以后,数学已经成为了一项全球性的事业,吸引着身处所有地域的人为之奋斗,而其中相当一部分的进展都发生在中国。因此,这本书现在出版了简体中文版,是尤其令我欣喜的事。(同时我也愉快地发现译者的名字和我的中文名“高德纳”同姓,而我的中文名字乃是储枫4在我1977 年首次访华时为我起的。)

我衷心希望中国的读者,无论是否仍然年轻,都能够从Conway 留给我们的美妙数学模式中得到乐趣。Donald E. Knuth(高德纳)

1 亨德利克·易卜生(HendrikIbsen,1828-1906),挪威戏剧大师,现代现实主义戏剧的创始人,为国人耳熟能详的代表作有《玩偶之家》、《人民公敌》等。——译者注,全书同

2 根据《圣经·创世纪》,上帝以六日创生万物,而第七日为安息日。

3 无国界组织,指一些专业人士号召摆脱种族、宗教和政治立场,为全人类谋福祉而自发的组织。无国界医生(Médecins Sans Frontières) 曾获1999 年诺贝尔和平奖。

4 储枫(Frances Yao),著名学者,1973 年从麻省理工学院取得博士学位。曾在美国多所名校任教,2004 年起在香港城市大学计算机科学系担任系主任。名字中的“Yao”为夫姓姚,其夫为2000 年图灵奖获奖者姚期智(Andrew Yao)。

译者序

摆在诸位读者面前的,是一本可能会给您的一生带来重大转折契机的书。

这并非故弄玄虚,因为它的作者——计算机算法大师高德纳(Donald E. Knuth),以三卷本的《计算机程序设计艺术》(The Artof Computer Programming) 一举获得IEEE 先驱奖和ACM 图灵奖这两个计算科学界最高奖项。以出版物的成就拿到这两个奖项的,在历史上可谓空前绝后。《计算机程序设计艺术》是无可争辩的神作,毫不夸张地说,全世界和算法分析相关的一切著作,都直接或间接地与这套书有关。但是,能够真正读懂这套书的读者,真是凤毛麟角。且不说里面的数学分析,就算是为讲解算法所使用的程序语言也全是作者自行发明的一种理想机器所使用的,这对于读者的数学功底和抽象思维都提出了非常严苛的要求。所以,有一种说法是,拥有全套《计算机程序设计艺术》的人很多,但是读过十页以上的人则屈指可数。

可是,高德纳本人却一直都认为,再深入的研究也是从最简单的情况入手的。并且一旦掌握了几种做研究的固定套路,即使是普通人也不仅可以着手做研究,甚至还可能做出一流的成果来。这里所说的研究,并非一定是数学研究,而是指从一系列基本的事实或定义出发,通过若干明确的规则,推导出满足这些前提条件的有价值的结论。研究,是最能够体现人类心智的活动,也是创新乃至人类进步的根本源动力。每个人在每天的日常工作和生活中,都在进行着不同程度的研究活动。但是高德纳所主张的研究,既是自觉的、有目的的研究,更是一种工作和生活的基本态度。不仅仅是把研究看作是一种高级的智力活动,更是给心灵带来深层次乐趣的生活方式。唯有如此,才能使研究活动走出象牙塔,打破原本就不存在的条条框框,让每一个人都能领略研究带来的美学享受,提升生活的品质和境界。

高德纳的博士学位是数学专业,他最得心应手的技术和工具自然也是数学。在本书中,他为了展示研究活动所涉及的方法和思维,也使用了数学作为演示工具。但是,为了尽可能地不让读者陷入具体的技术细节,大师采用了不仅在学术作品中绝无仅有,并且在科普作品中也绝不多见的情景小品形式。这么一来,从研究问题的提出,到研究体系的构建,再到研究思路的形式,直到研究结论的得出,都通过男女主人公的对白完成。我想,大师这样另辟蹊径的意图,是想让我们把关注的焦点,始终放在研究过程而非具体的数学讨论上。从主人公发现问题的兴奋、遭遇困境的彷徨、探索出路的苦闷、得到结论的欣喜中,我们能够从观众视角充分地体会到研究那点事儿的方方面面,既明确了研究的要素,又了解了研究的方法。更重要的是,从这些对白中我们能够逐渐地明白,对同一问题的研究能够拉近人与人心灵的距离,使得人类之间的欣赏摆脱了低层次的物质追求和利益计算,乃至给生命本身带来升华,真正地使“终极幸福”成为可能。

纯粹从数学知识的角度来看,本书的内容是建立在集合论的基础之上的。数通过集合加以定义,数的顺序映射为集合的关系,而数的运算则映射为集合的运算。定义和规则只有简单的几条,并且非常直观易懂。但是由于数的定义已经从基础上被完全颠覆了,一切有关数的顺序和运算都必须重起炉灶。本书中,男女主人公不断地从基础定义出发,研究出了一系列的中间定理,并总结出若干反复运用的研究套路。最终发现,采用新方法定义的数所组成的集合,竟然是比实数系统更加稠密的数系。并且在这种新的数系中,无穷大量和无穷小量可以像普通的数那样参与运算,而且像“无穷大的一半是多少”这样在传统的实数连续统中没有定义的量,在新的数系中有着很明确的数学意义(实际上,该集合大致相当于现在称为Grothendieck 宇集的集合,但是不了解这个背景完全不影响阅读)。更妙的是,可以发明一些不符合数的定义,却可以作为中间结果使得一些运算成立或简化的“伪数”,其地位相当于 这个在人类的认识尚局限于实数的时代曾经一度被排斥的“异端”,可是最终人类却由此出发得出了给数学的进步带来了巨大推动力的复数……总之,内容精彩纷呈,欲知详情,请仔细阅读。大师的手笔,绝不会让你失望!

作为本书的译者,我感觉翻译的过程本身是充满愉悦的享受,可以说是一次与高德纳大师进行心灵对话的宝贵体验。以我个人的体会来说,本书只要仔细阅读,是连高中生都应该可以完全看懂的。即使一时静不下心来去读懂具体的推导过程,看看大师在主人公的对白中有意插入和强调的那些研究所带来的普世价值,也是大有裨益的。本书成稿的过程中,得到了博文视点符隆美编辑的大力支持,没有她的关照和鼓励,我不可能这么快地完成全书的翻译。承美国南密西西比大学数学系丁玖教授抽出宝贵时间阅读了全书译稿,并提出了数十条专业意见。北京师范大学数学系的赵钊研究员也费心费力,对译稿的可读性和技术问题作了上百处修订。在此,向他们两位表示衷心的谢意。本书成稿过程中,上海交通大学计算科学与技术系的张尧弼教授和窦延平教授、上海交通大学软件学院的陈平教授、SAP 中国的范德成工程师、盛大创新院的刘海平研究员、微软亚洲工程院的王楠工程师、谷歌中国的龚理工程师、美光半导体的赵海源技术顾问、上海申通地铁集团的蒋振伟项目经理等都提出过若干稿件修正意见,在此一并致谢。当然,由于本人能力所限,本书的缺点和不足仍在所难免,这些理应由我一人负责。为向高德纳大师致敬,本书简体中文版采用大师本人发明的TEX 排版系统排版。我的老朋友、SAP 美国的技术咨询顾问劳佳同志在承担了排版工作的同时,亦费心费力在封面设计上帮了大忙,还对文稿内容有颇多指正之功,这里要特别致谢。我也想借此机会向在工作和生活上给了我莫大支持的父母和家人表达我内心最深处的敬意,希望本书的出版能给你们带来快乐。

高博

2011 年12 月

于盛大集团上海总部

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iteye_4515/article/details/82277681

智能推荐

Debezium系列之第100篇文章:阶段性详细总结对Debezium使用方式的优化,详细介绍对Debezium集群和Kafka集群做的一系列优化_debezium oracle kafka配置优化-程序员宅基地

文章浏览阅读681次。Debezium系列之第100篇文章:阶段性详细总结对Debezium使用方式的优化,同时优化Kafka集群和Debezium集群_debezium oracle kafka配置优化

旷视产品营销总监吕盟:构建AIoT时代的城市智慧|量子位沙龙回顾-程序员宅基地

文章浏览阅读465次。4月10日,量子位与中关村壹号联合主办的AI+线下沙龙—智慧城市的发展趋势与挑战在中关村壹号举办。旷视产品营销总监吕盟、明略科技COO兼数字城市发展部总经理唐日新、思必驰..._产品营销总监

Java并发编程 - 第三章 Java内存模型_数据依赖分为-程序员宅基地

文章浏览阅读1.3w次。前言:Java 线程之间的通信对程序员完全透明,内存可见性问题很容易困扰 Java 程序员,本章将揭开 Java 内存模型神秘的面纱。一、Java 内存模型的基础1.1 并发编程模型的两个关键问题在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。在消息_数据依赖分为

sync___fast_iob-程序员宅基地

文章浏览阅读4.6k次。1. linux下sync命令在busybox-1.14.3中sync命令相关代码非常简单,int sync_main(int argc, char **argv UNUSED_PARAM){ /* coreutils-6.9 compat */ bb_warn_ignoring_args(argc - 1);___fast_iob

python pandas常用函数_python:pandas常用功能函数操作-程序员宅基地

文章浏览阅读306次。一、安装pandas创建虚拟环境:#创建虚拟环境mkvirtualenv -p python3 pandas_env#进入虚拟环境workon pandas_env安装pandas# 1、安装包$ pip install pandas测试# 2、进入python的交互式界面$ python -i# 3、使用Pandas>>> import pandas as pd>>..._print(df)

基于UDS的CAN通信故障诊断_汽车故障诊断是利用ecu监测控制系统各组成部分的工作情况,发现故障后自动启动故障-程序员宅基地

文章浏览阅读9.6k次,点赞16次,收藏89次。摘要:阐述一种诊断控制单元之间通信丢失故障的机制,通过基于UDS的诊断协议进行原理分析,并制定一种有效的诊断处理策略。 汽车故障诊断是利用ECU监测控制系统各组成部分的工作情况,发现故障后自动启动故障记录和处理逻辑。汽车故障诊断模块不仅能够存储记忆汽车故障,还能够实时提供汽车各种运行参数川。外部诊断设备通过一定的诊断通信规则与ECU建立诊断通信,并读取这些故障和参数,同时解析出来供外部测..._汽车故障诊断是利用ecu监测控制系统各组成部分的工作情况,发现故障后自动启动故障

随便推点

测度论与概率论笔记5:测度空间上的积分(下)_lebesgue-stieltjes积分-程序员宅基地

文章浏览阅读1.7k次。内容摘要:1. Lebesgue积分和Lebesgue-Stietjes积分 2. 随机变量期望的严格定义与计算_lebesgue-stieltjes积分

CodeForces入门-程序员宅基地

文章浏览阅读5.1k次,点赞2次,收藏17次。codeforces的正确打开方式https://www.cnblogs.com/muzu/p/7616746.html1.背景可能很多人都久闻codeforces网站的大名,却苦于各种各样的区域性问题或玄学问题,没能真正地体验到cf所带来的极致魅力而网络上关于这方面的博文太少了(至少我没找到过),于是就写了这样的一篇博文2.关于codeforces...

algorithm头文件函数全集——史上最全,最贴心-程序员宅基地

文章浏览阅读7.3w次,点赞816次,收藏3.7k次。  不知大家可否遇到这种情况:一道题想出思路后,一般都习惯性的百度一下有没有“现成的函数”可以调用,往往收获不菲,增长很多奇奇怪怪的知识。而这些“现成的函数”大部分都来自于algorithm头文件。简直是我等懒癌的福音啊!  当然,也有很多朋友喜欢自己写函数。因人而异吧,哈哈  为了更方便、易懂, 笔者将每个函数的用法都注释在了代码中,想要验证或加深印象直接复制到编译器里就可以运行。代码:..._algorithm头文件

眼底视网膜血管增强方法(四)Frangi滤波_3d frangi参数-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏55次。眼底视网膜血管增强方法(四)Frangi滤波Frangi1滤波是Frangi在1998年,运算Hessian矩阵的特征值构造出了一种滤波器来增强血管结构。Hessian矩阵实际是一个二阶偏导矩阵,矩阵的特征向量在图像边缘检测方面有着重要的作用。_3d frangi参数

java用while循环设计轮询线程的性能问题-程序员宅基地

文章浏览阅读644次。java用while循环设计轮询线程的性能问题 java用while循环设计轮询线程的性能问题 轮询线程在开发过程中的应用是比较广泛的,在这我模拟一个场景,有一个队列和轮询线程,主线程往队列中入队消息,轮询线程循环从队列中读取消息并打印消息内容。有点类似Android中Handler发送消息。首先定义一个Message类。public cla..._java 轮训查询 不影响主线程降低子线程

ROS: Cannot mix incompatible Qt library (version 0x50905) with this library (version 0x50c01)-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏3次。错误开始尝试使用rosrun turtlesim turtlesim_node运行ROS的入门样例时,出现这样的错误:Cannot mix incompatible Qt library (version 0x50905) with this library (version 0x50c01) Aborted (core dumped)根据提示可以判断是QT的版本不兼容导致的错误,百度知道查看当前QT版本:$ qmake -vQMake version 2.01aUsing Qt version _cannot mix incompatible qt library (version 0x50905) with this library (vers

推荐文章

热门文章

相关标签