The Art of Computer Programming, Volume 1 Fundamental Algorithms 1997 PDF下载

weixin_39822095 2020-06-27 06:00:31
为数字计算机编写程序的过程特别愉快,因为我们不仅可以获得经济和科学两方面的收益,还能尽享写诗或作曲般的艺术体验.本书是多卷丛书中的第一卷,整个丛书旨在培训读者掌握程序员必备的各种技能.

在接下来的章节中,我不打算介绍计算机程序设计的入门知识,而是假定读者已有了一定的基础.预备知识实际上非常简单,但初学者恐怕需要一些时间并动手实践,方能理解数字计算机的概念.读者应该具有如下知识.

(a) 对存储程序式数字计算机的工作原理有一些认识.不一定需要电子学背景,但需要知道指令在机器内存中是如何保存和连续执行的.

(b) 能够用计算机可以“理解”的确切术语来描述问题的解决方案.(这些机器不懂所谓的常
相关下载链接://download.csdn.net/download/u013123773/10873743?utm_source=bbsseo
...全文
11 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
为数字计算机编写程序的过程特别愉快,因为我们不仅可以获得经济和科学两方面的收益,还能尽享写诗或作曲般的艺术体验.本书是多卷丛书中的第一卷,整个丛书旨在培训读者掌握程序员必备的各种技能. 在接下来的章节中,我不打算介绍计算机程序设计的入门知识,而是假定读者已有了一定的基础.预备知识实际上非常简单,但初学者恐怕需要一些时间并动手实践,方能理解数字计算机的概念.读者应该具有如下知识. (a) 对存储程序式数字计算机的工作原理有一些认识.不一定需要电子学背景,但需要知道指令在机器内存中是如何保存和连续执行的. (b) 能够用计算机可以“理解”的确切术语来描述问题的解决方案.(这些机器不懂所谓的常识,它们只会精准地按要求干活,不会多做也不会少做.这是刚开始接触计算机时最难领悟的概念.) (c) 掌握一些最基本的计算机技术,例如循环(重复执行一组指令)、子程序的使用、下标变量的使用. (d) 能够了解常见的计算机术语,如内存、寄存器、位、浮点、溢出、软件等.正文中未给出定义的一些术语,会在每卷最后的索引部分给出简明的定义.或许可以把这四点归结为一个要求:读者起码为一台计算机编写和测试过至少(比如说)4个程序. 我力图使本套丛书能满足两方面的需求.首先,这些书总结了几个重要领域的知识,可以作为参考书;其次,它们可以用作自学教材或计算机与信息科学专业的大学教材.为此,我在书中加入了大量的习题,并为多数习题提供了答案.此外,我在书中尽可能地用事实说话,言之有据,避免做一些含糊的泛泛而谈. 这套书针对的读者不是那些对计算机只有一时兴趣的人,但也绝不仅限于计算机专业人士.其实,我的一个主要目标是使其他领域的广大工作者能够方便地了解这些程序设计方法,他们本可以利用计算机获得更丰硕的成果,但却没时间去技术刊物中查找必需的信息. 本套丛书的主题可以称为“非数值分析”.在传统意义上,计算机是与方程求根、数值插值与积分等数值问题求解联系在一起的,但我不会专门讨论数值问题,最多顺带提一下.数值计算的程序设计是一个发展迅猛、引人入胜的领域,目前已出版了许多相关图书.不过,从20 世纪60 年代初期开始,计算机更多地用于处理那些很少出现数值的问题,此时用到的是计算机的决策能力而非算术运算能力.非数值问题中也会用到一些加法和减法,但基本不需要乘法和除法.当然,即便是主要关注数值计算的程序设计的人也可以在非数值方法的学习中受益,因为数值程序中也会用到非数值方法. 非数值分析的研究成果散见于大量科技刊物中.通过研究,我从大量文献中提炼出了一些可以用于多种编程场合的最基本的方法,并尝试着将其组织为一套“理论”.同时,我还展示了如何应用这一理论解决大量的实际问题. 当然,“非数值分析”是一种太过负面的否定性的提法,使用肯定性的描述语来刻画这一研究领域要好得多.“信息处理”对于我们的内容而言过于宽泛,“程序设计技术”又显得太狭窄了,因此我提出用算法分析来概括本套丛书的主题比较恰当,这一名称暗示我们将探讨“与特定计算机算法的性质有关的理论”.
为数字计算机编写程序的过程特别愉快,因为我们不仅可以获得经济和科学两方面的收益,还能尽享写诗或作曲般的艺术体验.本书是多卷丛书中的第一卷,整个丛书旨在培训读者掌握程序员必备的各种技能. 在接下来的章节中,我不打算介绍计算机程序设计的入门知识,而是假定读者已有了一定的基础.预备知识实际上非常简单,但初学者恐怕需要一些时间并动手实践,方能理解数字计算机的概念.读者应该具有如下知识. (a) 对存储程序式数字计算机的工作原理有一些认识.不一定需要电子学背景,但需要知道指令在机器内存中是如何保存和连续执行的. (b) 能够用计算机可以“理解”的确切术语来描述问题的解决方案.(这些机器不懂所谓的常识,它们只会精准地按要求干活,不会多做也不会少做.这是刚开始接触计算机时最难领悟的概念.) (c) 掌握一些最基本的计算机技术,例如循环(重复执行一组指令)、子程序的使用、下标变量的使用. (d) 能够了解常见的计算机术语,如内存、寄存器、位、浮点、溢出、软件等.正文中未给出定义的一些术语,会在每卷最后的索引部分给出简明的定义.或许可以把这四点归结为一个要求:读者起码为一台计算机编写和测试过至少(比如说)4个程序. 我力图使本套丛书能满足两方面的需求.首先,这些书总结了几个重要领域的知识,可以作为参考书;其次,它们可以用作自学教材或计算机与信息科学专业的大学教材.为此,我在书中加入了大量的习题,并为多数习题提供了答案.此外,我在书中尽可能地用事实说话,言之有据,避免做一些含糊的泛泛而谈. 这套书针对的读者不是那些对计算机只有一时兴趣的人,但也绝不仅限于计算机专业人士.其实,我的一个主要目标是使其他领域的广大工作者能够方便地了解这些程序设计方法,他们本可以利用计算机获得更丰硕的成果,但却没时间去技术刊物中查找必需的信息. 本套丛书的主题可以称为“非数值分析”.在传统意义上,计算机是与方程求根、数值插值与积分等数值问题求解联系在一起的,但我不会专门讨论数值问题,最多顺带提一下.数值计算的程序设计是一个发展迅猛、引人入胜的领域,目前已出版了许多相关图书.不过,从20 世纪60 年代初期开始,计算机更多地用于处理那些很少出现数值的问题,此时用到的是计算机的决策能力而非算术运算能力.非数值问题中也会用到一些加法和减法,但基本不需要乘法和除法.当然,即便是主要关注数值计算的程序设计的人也可以在非数值方法的学习中受益,因为数值程序中也会用到非数值方法. 非数值分析的研究成果散见于大量科技刊物中.通过研究,我从大量文献中提炼出了一些可以用于多种编程场合的最基本的方法,并尝试着将其组织为一套“理论”.同时,我还展示了如何应用这一理论解决大量的实际问题. 当然,“非数值分析”是一种太过负面的否定性的提法,使用肯定性的描述语来刻画这一研究领域要好得多.“信息处理”对于我们的内容而言过于宽泛,“程序设计技术”又显得太狭窄了,因此我提出用算法分析来概括本套丛书的主题比较恰当,这一名称暗示我们将探讨“与特定计算机算法的性质有关的理论”.
From the Back Cover This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science. The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his "cookbook" solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called fascicles, which will be published t regular intervals. Each fascicle will encompass a section or more of wholly new or evised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete. Volume 1, Fascicle 1 This first fascicle updates The Art of Computer Programming, Volume 1, Third Edition: Fundamental Algorithms, and ultimately will become part of the fourth edition of that book. Specifically, it provides a programmer's introduction to the long-awaited MMIX, a RISC-based computer that replaces the original MIX, and describes the MMIX assembly language. The fascicle also presents new material on subroutines, coroutines, and interpretive routines.
资源来自http://b-ok.org/,本人对相关版权等问题不了解,可联系删除 The Art of Computer Programming, Volume 2: Seminumerical Algorithms (3rd Edition) Donald E. Knuth Volume 2 of Donald Knuth's classic series The Art of Computer Programming covers seminumerical algorithms, with topics ranging from random number generators to floating point operations and other optimized arithmetic algorithms. Truly comprehensive and meticulously written, this book (and series) is that rarest of all creatures--a work of authoritative scholarship in classical computer science, but one that can be read and used profitably by virtually all working programmers. The book begins with fundamental questions regarding random numbers and how to use algorithms to generate them. Subsequent chapters demonstrate efficient computation of single-precision and double-precision arithmetic calculations and modular arithmetic. The text then presents prime factorization (which can be used in cryptography, for instance) and algorithms for calculating fractions. This volume ends with algorithms for polynomial arithmetic and manipulation of power-series topics, which will benefit those with some knowledge of calculus. Throughout this beautifully presented edition, Knuth incorporates hundreds of useful exercises for trying out the algorithms. These range from simple problems to larger research project topics. (The book provides answers, where appropriate, at the end of the book.) The result is a text that's suitable for college or graduate-level computer science courses or individual study by programmers. Volume 2 is an indispensable part of any working programmer's library.

13,655

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧