漫谈Donald Knuth和《计算机程序设计艺术》

来源:互联网 发布:淘宝售后管理在哪 编辑:程序博客网 时间:2024/06/17 21:33

IPB Image


http://download.csdn.net/detail/wangpegasus/5643021

本人收藏的三卷下载链接



八卦高德纳:

  
  1. 高德纳曾在自传的开头幽默地发问:“Donald Knuth真的只是一个人么?”作为现代计算机科学的鼻祖,他完成了编译程序、属性文法和运算法则等领域的前沿研究,出版专著17部,发表论文150余篇(涉及巴比伦算法、圣经、字母“s”的历史等诸多内容),写出两个数字排版系统,同时在纯计算数学领域也有独特贡献。他获得的奖项难以胜数,其中包括ACM Turing Award颁发的图灵奖(1974),美国国家科学奖(1979),日本KYOTO奖(1996),瑞典科学院的Adelskold奖及冯诺伊曼奖。而他对荣誉从不经意,据说那只代表至高荣誉的图灵碗被用来盛放水果。——回首过往,几十年时光如白驹过隙,大约是他自己对做出的成果如此之多也感到吃惊,所以才有以上一问。 
   
  2.八岁时的高德纳即显出超凡智力:当时某糖果商以小学生为参与对象举办了一项益智趣味比赛,要求用“Ziegler’s Giant Bar”(分别为糖果厂名和出产的棒棒糖名)里的字母写出尽可能多的单词。高假装胃疼宅家两周,依靠一部大字典列出了4500个单词(超出裁判掌握的2000个单词一倍多),不仅使所在班级夺冠(奖品为一台电视机和每人一块Giant Bar),本人也赢得一付雪撬。其赛后感言曰:我还能写出更多。 
   
  3.在高中第一学年,高德纳并未对数学发生太大兴趣,他更喜欢听音乐与作曲,一度考虑过报考音乐专业。这个爱好深度影响到他后来的生活及研究——他将写作喻为演奏管风琴,其书房里的确也摆放有一台特制的84管管风琴,此外他还会萨克斯和大号等乐器。所著《娱乐和游戏论文集》一书有四个章节内容涉及到高的“主要副业”——音乐;进入90年代,当连续工作几天需要放松一下时,他会着手谱写管风琴乐曲。 
   
  4.1956年以科均97.5的分数高中毕业进入凯斯理工学院物理专业后,高德纳中学时创作的科幻小说《普茨比度量衡体系》发表于著名的《疯狂》(Mad)杂志,挣得平生第一笔稿费25美元及西屋“科学天才”提名奖。这个作品曾多次再版,直到作者即将退休的1991年还重印过一次。 
   
  5.大学一年级留校打工,毗邻的计算机房新到了一台IBM650——这个指示灯闪烁不定的庞然大物让高德纳生出莫大兴趣。当获准在晚上操作那台计算机后,他几天不眠不休地观察探究,并且改动了说明手册上的程序使之更加好用。一年后,高改入数学系,自此终生同计算机结缘。当时兼职学校篮球队的他用IBM650写了一个程序,用于对球员在每场比赛中得分、助攻、抢断、篮板球、盖帽等一揽子数据的分析评估,球队教练据此挑选球员,使凯斯理工学院赢得了1960年的联赛冠军。这个“神奇的公式和程序”引来了当地媒体乃至CBS电视台的大肆报道,高所在球队和IBM650的合影被IBM印到了产品宣传册上。这段经历的重要性不言而明,以至高德纳在巨著《计算机程序设计的艺术》第一卷卷首写下“献给曾经安装在开思理工学院的650型计算机,以纪念那些愉快的夜晚”的题辞。 
   
  6.上大二那年,某教授在课堂上给出一个刁钻的题目,宣称谁能破解就可记成绩“A”。高跟大多数同学都以为那是道无解的题,直到某日他未赶上公共汽车,只能步行去看一个演出时,方决定利用路上的闲暇碰下运气。不承想问题很快便获得解决,成功地得到了“A”。在接下来的那个学年里,他的离散数学成绩又一次被老师评为“A”。 
   
  7.高德纳1960年毕业于开思理工学院,因学业特别出色,被破例同时授予学士和硕士学位。之后在伯克利攻读数学博士期间,ALGOL60经常因为编译器不成熟出现故障,他为此编写了一个简单的测试程序,人称“Man or boy test”(男人或男孩测试),可以译成“是男人就得-67”。高解释,用ALGOL60来编译这段程序,只要运行结果等于-67,就说明这个编译器没有问题了,是纯爷们儿。 
   
  8.习惯用铅笔而非键盘写初稿,高将原因归咎于打字速度远高于思考速度(每分钟 80 个单词以上),而这会导致思考出现太多停顿,用铅笔可以让思考与输入速度保持一致——“我打字的速度比我思考的速度更快,这样当我试图用键盘创作重要内容时,就会产生同步问题。速度通常不会是最重要的标准。科学一般都难以迅速解释或迅速领会……我通常的工作方式是用铅笔和纸先把所有东西都写下来,然后在旁边放一个大废纸篓。然后使用Emacs将所有文本键入到机器中……特定的Emacs快捷键使得写书的过程有点儿像演奏风琴……” 
   
  9.“我戴着一顶计算机科学家的帽子,而不是一顶数学家的帽子。”这似乎暗示了身为加州理工学院数学博士的高对数学家的某种成见——在他看来后者只知道“What is it(这是什么)”,而前者还知道“How to do it(如何做到这一点)”这可能是他心目中的数学与计算机科学的区别。 
   
  10.斯坦福大学曾让高德纳为自己选择一个头衔,他确定的是“计算机程序设计艺术名誉教授”。高认为“计算机科学”不是科学(他很讶异人们为何如此喜欢科学),而是一门艺术。它们的区别在于:艺术是人创造的,而科学不是;艺术是可以无止境提高的,而科学不能;艺术创造需要天赋,而科学不需要。 
   
  11.传闻高改作业通常是随机翻到一页认真批阅,有了一个初步印象后,对剩下的内容就只大概看看了。阅读大致也照此办理:遇上大部头先读第316页,如果书比较薄就看第100页;随后就可以作出判断了,据说准确率还八九不离十。如果追随他的人很多,以后著书就要注意了:写到第316页或100页时一定要停下来多推敲下。这或许是高德纳推崇随机算法的结果。 
   
  12.“文学化编程(Literate Programming)”是高写的又一程序,他自称写这个程序的动机有二:A.让一个程序员(或许就是他自己)在某一日拿到普利策奖;B.让那些提出“结构化程序”的家伙在写“非文学程序”时,就像他当年写“非结构化程序”时一样怀有罪恶感——娃哈哈。有关“文学编程”设想的文字最先发表于英国的《计算机学报》,有人问为何不在美国发表,高答曰:美国人没文化,他们理解不了啊。 
   
  13.《美国数学月刊》刊载过高德纳一篇名为“卫生纸问题” 的论文,研究如何合理使用厕纸的算法,小节标题中使用了大量的“粪便学”词汇。编辑警告他,过度调侃的文风在我们这里是危险的,请三思!高替换了小标题里的某些词,但不想动文章标题,遂在给编辑的回信里写道:我用这个题目做过两次演讲,主题早已被广泛采用和讨论……云云。编辑无奈之下只好表示:“你的厕纸被接受了!”(斯坦福大学计算机科学系楼内的厕纸架可并放两筒厕纸,供如厕者取用。卷筒大小不等时,喜欢从大筒拿纸的叫big-chooser【大的选择器】,喜欢从小筒拿纸的则称little-chooser【小的选择器】;若两筒大小接近,一般人的选择可能是离手最近的。厕纸平时由janitor【看门人】负责更换,用完一筒换掉一筒;不过要是同时用完,恐怕就会有人遇上麻烦了……高研究的似是两筒纸同时用完的窘境出现的概率) 
   
  14.在伯克利毕业的前一年,著名的艾迪生-韦斯利出版社约初露头角的高德纳写一本编译器和程序设计方面的书,这件原本寻常的事最终成就了计算机科学史上的一个奇观。出版社1962年约稿,可直到1966年还动静全无,编辑忍不住去电催促,说都过去4年了,书写到啥程度了啊?高答才3000来页。编辑惊呼那干嘛还不交稿?答曰还没进入正题呢。编辑崩溃地说,那只能出多卷本了…… 
   
  15.《计算机程序设计艺术》第一卷于1968年推出,可真正能读完读懂的人为数并不多(传比尔•盖茨费时几个月才读完这一卷,然后说,如果你想成为一个优秀的程序员,那就去读这个《基本算法》吧)。高对此解释道:“我知道我的书是不容易读,不过要知道的是,如果不是我精雕细琢地写的话,它们会比现在难读一百倍。”1973年,这部刚出到第三卷的书(计划写七卷)已被计算机界视为“神作”,最初几年就卖出100多万套;译为俄、日、西、葡、匈牙利、罗马尼亚等多种文字后,更创造了计算机类图书的销售纪录。美国计算机协会(ACM)也不淡定了,1974年就将国际计算机界的至高荣誉“图灵奖”授予了他——此时的高德纳年方36岁,他迄今还是这项最年轻图灵奖获得者纪录的保持者。 
   
  16.获此殊荣后,令业界大跌眼镜的是:高宣布暂停写作,理由是现有的计算机排版软件效果太差,破坏了这套书的美。这不免引发作者是否江郎才尽,见好就收的猜测与怀疑——不料辍笔10年的高德纳以三个重量级创造性成果:字体设计系统METAFONT(其价值一言以蔽之:计算机界最懂字体的俩大腕,一是乔布斯,一是高德纳)、文学化编程(充分展示程序设计的艺术性:清晰,美感,诗意),尤其是最具革命性的排版系统TEX(至今仍是全球学术排版的不二之选)给出了强力回应。尽管如此,仍有人说高写完三卷 TAOCP就去研究TeX,其实是害怕写第四卷——不过他对这类风言风语根本不以为意:“一个人要把事情做的完美,只有跟上帝的意图保持和谐,现在上帝要我去写第四卷了。” 
   
  17.搁置手头的重要工作,费时10年专研排版美学打造TEX系统,原因其实很简单:数理图文排版以前一直使用金属活字,70年代以降始有激光照排,然而当时的计算机虽能替代人工排出普通的报纸杂志,但对处理复杂的数理公式却力不从心。高德纳试图为计算机写一个小玩艺儿解决上述问题,TeX的前半部分由此产生。编写过程中,他想参考J•伯克霍夫的Aesthetic Measures(《美学标准》)一书,在哈佛的图书馆几经查阅也未能如愿,之后好不容易在麻省理工学院找到。参考的结果是在TeX里加入一个变量badness,用以衡量一行文字的美感,变量越小文字就越美。 
   
  18. TEX功能强大、几近无懈可击,其版本号非自然数列,也非年份,而是不断逼近的圆周率(最新版本为3.1415926)——这等于宣告产品接近完美,已经不可能作大的改进了。高为此设置了悬赏奖金:谁找出TEX里的一个bug,就付给其2.56美元,找出第二个5.12美元,第三个10.24美元……依此累加。算法大师不可能不明白指数增长的可怕性(传说中的国王就是玩指数游戏输掉了江山),然而直到今天,他也未能为此付出多少钱。高的另一悬赏是向发现其著作中错误的人发奖,数额依旧是2.56美元始,因为“256美分刚好是十六进制的一美元”。不过寥寥几位获奖者都将有他签名的支票当作文物珍藏,并未打算去银行兑现。 
   
  19.作为开源代码运动最早的倡导者之一,高德纳将Tex 和Metafont无偿贡献给了世界,自己没有从中获取任何报酬。他的想法是,一个人一旦能够喂饱自己并有个安身之所,剩下的就是为别人做点什么了。“我尝试尽我所能的去熟悉电脑科学里的一些领域,然后把这些知识摘要成大家比较容易了解的方式,让没有那么多时间做这种学习的人也能够吸收它们”。为此他常常需要阅读超过20万页的文献,然后将之浓缩为两千页——他无意追赶最流行的内容,而是希望从日新月异的信息中萃取出能够存活到下个世纪的精华。 
   
  20. 1992年,高为潜心写作TAOCP从斯坦福提前退休,同时停用电子邮箱(他自1975年就开始玩电邮)。2008年,TAOCP前三卷出版30年后,第四卷在高粉的千呼万唤中终于面世,此际的高德纳已然是满头白发。对计算机科学的倾心热爱,使他为这部作品耗费了毕生心血:从及冠之年直至古稀老人。 
   
  21.高做过大受欢迎的“信仰与科学的关系”系列讲座,对访者问及的写作和信仰之间的关系,他回答说:“计算机科学是既壮观又幽美的,我尝试尽自己所能,以最恰当的方式来解释我所了解的某些片断……我相信,总有一些神秘的东西是超越人类的理解而存在的……我认为,上帝希望我能创造某些成果,而这些东西能够启发其他人去创造别的成果。” 
   
   22.高德纳这个中文名来自储枫教授(香港城大计算机科学系主任,华裔图灵奖得主姚期智的夫人)。以“高”为姓,据Knuth自述是因其个头高大,且辅音G和K读音接近;“德纳”则与“Donald”相谐,且在中文里含体面高贵之义。其时(1977年)高德纳携夫人及儿女John和与Jen正准备访问中国大陆——储枫给孩子也分别起了“高小强”、“高小珍”的名字,他们全家还同中国孩子在公园玩过无须语言交流的游戏。 
   
  23.有人视高为文艺复兴时期式的天才人物,因其不仅博学,更难得的是具超一流的动手能力——在分工日益细化,专业领域愈来愈狭窄的现代社会,这种博而专,基础与应用兼能,理论和操作并行的人才类型尤为罕见。如同一个人独力设计制造一架飞机,除了需要精通空气动力学理论,还须考虑机身上每一颗螺丝钉的固定方式,这确实不免让人想到欧洲文艺复兴时期列奥纳多•达•芬奇那样的全能巨人。 
   
  24. 唐纳德•欧文•克努特(Donald Ervin Knuth):1938年生于美国威斯康辛州密歇根湖畔的密尔沃基,斯坦福大学计算机科学系荣誉退休教授,排版软件TeX和字型设计系统Metafont发明人,所著描述基本算法与数据结构的巨作《计算机程序设计的艺术》被《美国科学家》杂志列为20世纪最重要的12本物理科学类专著之一,与爱因斯坦《相对论》、狄拉克《量子力学》、理查•费曼《量子电动力学》等经典比肩而立。 
   

计算机程序设计艺术介绍
《计算机程序设计艺术》重译自Donald E. Knuth(汉名高德纳)的三卷著作:"The Art of Computer Programming: 1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching";三卷中文名为《基本算法》、《半数值算法》及《排序与查找》。本书内容博大精深,作者因为三卷书获得美国计算机协会1974年图灵奖(该奖被国际公认为计算机科学领域的最高奖项)。

本书作者D. E. Knuth是在计算机学界十分著名的学者,在本领域享有很高权威和盛名,他的这部著作是无数计算机专业人员的学习教材和参考读物,也是许多专业研究工作者经常阅读的经典。本书已被翻译为几十种文字在世界各地出版,英文原版书在国外已经是第11次印刷。
该书1999年底被American Scientist列为20世纪最佳12部学术专著之一(与狄拉克的量子力学、爱因斯坦的相对论、曼德布罗特的分形论、鲍林的化学键、罗素和怀特海德的数学基础、冯诺意曼和摩根斯坦的博弈论、维纳的控制论、伍德沃和霍夫曼的轨道对称性、费曼的量子电动力学等科学史上的经典著作并列)。
本书结合大量数学知识,分析不同应用领域中的各种算法,研究算法的复杂性,即算法的时间、空间效率,探讨各种适用算法等,其理论和实践价值得到了全世界计算机工作者的公认。书中引入的许多术语、得到的许多结论都变成了计算机领域的标准术语和被广泛引用的结果。另外,作者对有关领域的科学发展史也有深入研究,因此本书介绍众多研究成果的同时,也对其历史渊源和发展过程做了很好的介绍,这种特色在全球科学著作中是不多见的。
作者高德纳几十年来对此书倾注的心血难以计量,他力求随着有关领域的最新进展不断更新内容,力求随着原版书的不断重印令其技术的、史实的和出版方面的错误或不当减到极少(他为了能够满意地随时修订自己的著作,发明了计算机排版系统TEX和字形设计系统METAFONT,无偿公诸于巨,使全世界的科技文献作者普遍受惠),现在其最新印次已很难找到错误,而相关史实的新证据、相关研究的新进展、习题的新解答仍在及时充实到勘误表或新的印次中。

翻译《计算机程序设计艺术》经过的片断回忆

苏 运 霖

那是在1973年至1974年期间,为了在吉林大学开设有关软件的课程,我被吉林大学派往中科院数学所进修,同时和数学所、中山大学和贵州大学的同志一起协作,从事XR(系列软件)项目的某个子课题的研究。当时,国内对于计算机软件的重要性才刚刚有所认识,因此对于程序设计、操作系统等,以中关村及北大、清华为中心,掀起了一个引进国外先进技术的热潮。就在这期间的一个周日,我来到五道口的外文书店,猛然发现了醒目的"The Art of Computer Programming"的3卷大部头新书,心绪为之一动,通过流览书的目录和部分章节,感到这是极有价值的书,在决心认真阅读学习的同时,心里也产生了把它们译成中文的念头。

当然,这样的重头书,不会只引起我一个人的注意。计算所和数学所的许多同行也都传开了有这本新书的消息。人们自然也都感到,把它译出,很有价值。

不久之后,我就回到了吉林大学。长春的外文书店,也都有了这套书,我向当时在一起工作的管纪文先生介绍了这套书,并把我想把它们译出的想法告诉了他。当然我们也告诉了当时任系主任的中科院学部委员,我们的老师王湘浩教授,他对我们这一重大举动,也深表支持。于是,我们也就这样开始干起来。

但是,那还是"文化大革命"时期,虽然已经不是只抓革命,不搞生产的文化大革命时期;特别是在邓小平复出,主持中央工作的阶段,学校已开始了招生和教学。然而,压倒一切的还是革命,后来又搞起批林批孔,矛头所指,直接针对周总理,后来又再次搞起批邓。当时,我白天时间,全在挖防空洞中消耗掉了,所以,我只能在晚上和清晨进行翻译工作。我和管纪文先生的分工是:我全部负责翻译,再由他誊清我的译文,并做一些润饰工作。整个3卷,我们都是这样干的。我们的翻译工作,真正地做起来,是在1975年底才开始的。

在我们开始从事这一工作时,当然受到人们的注意。一种人认为,我们干不了,这也有一点道理,因此在此之前,我们都还没有干过这样重大的翻译工作,特别是,这个领域对我们来说,完全是新的。但是,实际上,我们并非毫无基础,在此之前,我已经翻译过由当时计算所所长许孔时访问美、加带回的一本《操作系统》教材(多伦多大学),并且全文刊登在由当时的1015所出版的《计算机参考资料》上,当时这一译文,就倍受读者称赞,认为译文精确、流畅,可读性强;此外,我还翻译过当时著名的《课程表68》这一ACM制定的教学大纲。所以,只能说以前的工作,在其工作量上、难度上,没有现在的工作这么大而已,但是,有了以前的基础,我们怎么就干不了呢!所以对于这种人和他们的责难,我们毫不理会。

另一种人,则站在"革命者"的角度,说我们又在搞崇洋媚外的一套,说我们宣扬西方的文明,宣扬西方的生活方式,不知怎么回事,当时竟传出,这本书是宣扬资产阶级生活方式的。我曾为了翻译《课程表68》而受过批判和指责,所以,对于现在的责难,我也就不当一回事。我们坚信,这是一本高质量的科技著作,它在国外引起重视,在国内,也应得到同样的重视,才有利于我国的科技发展。在我们开始进行翻译时,我们并没有联系出版社讨论出版事宜。只是到了我们把整个第1卷都已翻译完时,我们才开始找出版社。而关于我们进行这套书的翻译的消息,不胫而走。在北京的很多同行中,许多人早已知道此事。当我们把第1卷的翻译稿带到北京后,许多朋友也都主动热心地帮我们联系此事。在这方面,给了我们很大帮助的是北京1015所的王寿松、梁大同、严友淳等同志,还有数学所的陆汝钤院士、周龙骧教授等,以及曾经到过斯坦福大学的软件所董韫美院士等。他们帮我们联系了国防工业出版社 (为什么没有联系科学出版社,我们也不大清楚,可能1015所同国防工业出版社更密切些,是其中的一个原因吧),最后,我们得到的答复是,我们的书有望在国防工业出版社出版。在这个过程中,我们也就开始同国防工业出版社的四编室的同志们打交道,当时四编室主任是周先珂同志,编辑室里有张均武、徐德霆、周烈强等同志,而负责从事本书编辑工作的,最初就是徐德霆同志。

然而,事情却决非这么容易,因为尽管我们在下边已开始操作,但此事成与不成,仍须经过上头的同意。据说,国防工业出版社的总编也无权批准,所以,尽管我们把书稿交给了出版社,但后来却迟迟没有下文。我们当然很着急,想知道事情的真相。然而我们又没有任何了解真相的渠道。后来,听了1015所同志们的介绍,我们才知道阻力来自于上头。我们也才知道,所谓此书宣扬资产阶级生活方式、宣扬西方文明等,实乃空穴来风,正是上头有人在这么说。而且,也才知道,许多国内当时的专家,如计算所阎沛霖、罗沛霖,15所总工陈力为等,都以他们政治上的大无畏精神和业务上的远见卓识,给了我们支持,他们力荐这套书的出版,最后才使上边儿为我们出书开了绿灯,也才使后来的工作,顺利地进行下去。这段使我们的工作险些胎死腹中的时间,有两三个月之久。这也就是为什么我要在本书的新译本的前言中,回忆此事,并对那些曾经帮助过我们的领导和专家致以深深谢意和敬意的原因。当然,说起来,最根本的是,邓小平同志改革开放,科教兴国的思想,使中国不再是闭关锁国,夜郎自大,这才有我们在该书译者前言中提到的祖国科学的春天。

这里还要提到本书作者D. E. Knuth的访华之行。1977年,Knuth携夫人和两个当时尚未成年的女儿访问中国,为时3周。陪同他访问的是加州圣地亚哥大学的华裔教授胡德强先生,胡先生是北京籍人,但在台湾受教育和成长,讲一口流利的北京话。Knuth来华访问的消息,由科学院数学所的陆汝钤教授等通知我和管纪文先生,并请我们也从长春前去北京,参加同Knuth的会见和听取他的报告、同他座谈等活动,这使我们有幸同本书作者认识。他当时还未满40岁,然而已经学富五车,蜚声四海,并荣获计算机界最高奖--图灵奖。但见他高大健壮,风流倜傥,而又彬彬有礼,极富学者风度。他在北京的讲话,谈到了算法和算法分析的重要性以及一些他认为甚有价值的问题。也谈到了后来成为他的重大成果的计算机印刷和排版技术——METAFONT和TEX。

胡先生向我们讲述了他的一些生平。他是在加州理工学院接受的高等教育,由于他聪明过人,又十分勤勉发奋,因此在大学阶段就已经做出了令业界瞩目的成就。后来,他没有通过硕士阶段,就直接读博士学位。他在CACM杂志社曾经工作过一段时间,审查和研究了许多算法,从而为他成为算法设计和分析的先驱打下了基础。他不仅在计算机科学领域有极高造诣,而且兴趣广泛。他酷爱文学,对莎士比亚戏剧深有研究,而且他本人就出版过小说。他还热爱音乐,对音乐也很有研究。后来,还写过用计算机谱曲的文章。他生活很有规律,每天都有固定安排,如周一是阅读和处理文件的时间,周二是接待学生和客人来访时间,周三爬山,周四上课,然后其它是研究工作时间。他有过人的精力,每天可以不离书案连续工作十几个小时。还讲到他的夫人,她是学过中文的。大概就是由于这点吧,使他们对中国很友好。他在来中国之前,要他的学生——姚储风为他取了中国名字——高德纳。当他得知我和管先生是他的著作的中文译者后,对我们表示了鼓励和支持,后为当我们请他为中文版写序时,他欣然答应,并且很快就寄来了。但是遗憾的是,后来该书第1次印刷时,该序未被收入其中,使我觉得很难向他作解释。然而在第2次印刷时,还是收进来了。这次,在我们出版新版本时,他又一次为中文本写序,足见他对于此书在中国出版的支持,而且信中充满了作者对中国读者的殷切期望。信中提到要用他的中国名字,这大概也是因为当初我们没有用他的中文名的一点不满而发吧。

这里我还想透露一件鲜为人知的事情。在80年代,中国开始大规模公派留学生出国,我当时也属于政府考虑选派的对象,因此曾经去信给他,表示希望他帮助安排到斯坦福大学进修。他回信表示进修不可能,但他可以让我攻读他的博士学位。由于不知道博士学位是由对方提供资助的,我竟由于感到经济上没有保证而没有接受。这成为日后的一大遗憾,我把这当成一生中最大的失误。

在第1卷出版的过程中,我们继续进行第2卷和第3卷的翻译工作,而且所有3卷书,在我于1980年调到暨南大学之后不久,都全部完成了。但是3卷的出版顺序,却并非按照1,2,3的自然顺序,这是因为当时有些专家认为第3卷比第2卷更急需,要我们先把第 3卷搞好。于是造成了历史上这一个事实--第3卷先于第2卷出版。而且,由于书价的剧烈浮动,使书的印量也发生了很大变化--第1卷头一次印了30 000册,第2次又印了10 000册;但第3卷则仅印了10 000册;第2卷,差不多推迟10年出版,和第1卷定价相差达10倍,因此印量仅3000册。

第2卷的推迟,还有一个原因,即原书作者在该书出版不久,即出了新版,新版大概是1984年或 1985年出版的,因此出版社自然希望我们重新按新版本译出。此时我已经在新西兰,而译稿交给陆汝钤院士校阅。那时他把译稿放在他的办公室里,办公室里是七八个人一起办公(可见当时知识分子的工作条件何其艰苦),结果,有一年,在他出访而所内搞迎新大扫除时,把译稿当成废纸扔掉了。所以在1986年,我从新西兰回国之后,在出版社找我要稿子时,陆教授才发现稿子丢失了。还好,并未全部扔掉,大概丢了三分之一多一些。他为此深感抱歉,我也无话可说,只好重新翻译。在这期间,又不知什么原因,一直使该书的出版拖延良久,直到1992年才终于出版了。

以上这些事情,不觉之间,已经距今20余年,至少也有10余年了。在我重操旧业翻译该书新版时,回忆它们,感触良深。写下它,作为永远铭记的一段人生经历。 

英文扫描版djvu截图:
IPB Image



目录: 

第1章 基本概念
1.1 算法
1.2 数学准备
1.2.1 数学归纳法
1.2.2 数,幂和对数
1.2.3 和与积
1.2.4 整数函数和初等数论
1.2.5 排列和阶乘
1.2.6 二项式系数
1.2.7 调和数
1.2.8 斐波那契数
1.2.9 生成函数
1.2.10 一个算法的分析
1.2.11 渐近表示
1.3 MIX
1.3.1 MIX的描述
1.3.2 MIX汇编语言
1.3.3 对排列的应用
1.4 某些基本程序设计技术
1.4.1 子程序
1.4.2 共行程序
1.4.3 解释性程序
1.4.4 输入和输出
1.4.5 历史和文献
第2章 信息结构
2.1 引论
2.2 线性表
2.2.1 栈,队列和双端队列
2.2.2 顺序分配
2.2.3 链接分配
2.2.4 循环表
2.2.5 双重链接表
2.2.6 数组和正交表
2.3 树
2.3.1 遍历二叉树
2.3.2 树的二叉树表示
2.3.3 树的其它表示
2.3.4 树的基本数学性质
2.4 多重链接结构
2.5 动态存储分配
2.6 历史和文献
习题答案
附录A 数值数量表
附录B 记号索引
索引与词汇表

第3章 随机数

3.1 引言
3.2 生成一致随机数
3.2.1 线性同余法
3.2.1.1 模数的选择
3.2.1.2 乘数的选择
3.2.1.3 效能
3.2.2 其它方法
3.3 统计检验
3.3.1 研究随机数据的一般检验方法
3.3.2 经验检验
3.3.3 理论检验
3.3.4 谱检验
3.4 其它类型的随机量
3.4.1 数值分布
3.4.2 随机抽样和洗牌
3.5 什么是随机序列
3.6 小结

第4章 算术

4.1 定位计数系统
4.2 浮点算术
4.2.1 单精度计算
4.2.2 浮点算术的精确度
4.2.3 双精度计算
4.2.4 浮点数的分布
4.3 多精度算术
4.3.1 经典算法
4.3.2 模算术
4.3.3 乘法能有多块?
4.4 进制转换
4.5 有理算术
4.5.1 分数
4.5.2 最大公因子
4.5.3 欧几里得算法的分析
4.5.4 分解素因子
4.6 多项式算式
4.6.1 多项式除法
4.6.2 多项式的因子分解
4.6.3 求幂值
4.6.4 多项式求值
4.7 幂级数的操作

习题答案

附录A 数值数量表
附录B 符号索引

索引与词汇表

第5章 排序

5.1 排列的组合性质
5.1.1 反序
5.1.2 多重集合的排列
5.1.3 路段
5.1.4 图表和对合
5.2 内部排序
5.2.1 通过插入进行排序
5.2.2 通过交换进行排序
5.2.3 通过选择进行排序
5.2.4 通过合并进行排序
5.2.5 通过分布进行排序
5.3 最优排序
5.3.1 极少比较排序
5.3.2 极少比较合并
5.3.3 极少比较选择
5.3.4 排序网络
5.4 外部排序
5.4.1 多路合并和替代选择
5.4.2 多阶段合并
5.4.3 级联合作
5.4.4 向后读带
5.4.5 振荡排序
5.4.6 关于磁带合并的实际考虑
5.4.7 外部基数排序
5.4.8 双磁带排序
5.4.9 磁盘和磁鼓
5.5 小结、历史和文献目录

第6章 查找

6.1 顺序查找
6.2 通过键码比较进行查找
6.2.1 查找一个有序的表
6.2.2 二叉树查找
6.2.3 平衡的树
6.2.4 多路树
6.3 数字查找
6.4 散列
6.5 利用辅助键码的检索

习题答案
附录A 数值数量表
附录B 记号索引

原创粉丝点击