读《计算机程序设计艺术》有感 The art of Computer Programming

本书展示了计算机科学中数学的深度应用,作者对于算法效率的极致追求令人印象深刻。书中不仅包含了复杂的数学推导,还使用了底层的伪汇编代码来实现算法,这些都对读者的数学基础提出了较高要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The art of Computer Programming 果真神作,读下来发现作者数学功力之深和思维之精确让人佩服。

数学与计算机的联系,在本书体现得淋漓尽致。

可惜本人数学基础不够扎实,读此书深感困惑,往往对书中某几处数学推导或证明百思不得其解。

 

另外,此书的许多算法都是用底层的伪汇编代码编写,虽然难读,但也让我开了眼界。

 

读此书,会对很多技术细节有所了解,例如书有一处就用了一个技巧使循环指针避免加到n, 这样在worst case会少了0.5次的运算. 如此,作者对效率的追求已经到了极为精致的程度了。

 

记得尹老师曾经跟我们讲过,当一门工艺做得越来越细致,即在细节上追求越来越完善,这门工艺才发展到成熟阶段,掌握这门工艺的匠人才能算是精通。软件工程领域上也是这样,当大家都会一点c++代码, 然而你却能比别人写出更有效率、更优雅的代码,你就比别人更专业,更有优势。

为数字计算机编写程序的过程特别愉快,因为我们不仅可以获得经济和科学两方面的收益,还能尽享写诗或作曲般的艺术体验.本书是多卷丛书中的第一卷,整个丛书旨在培训者掌握程序员必备的各种技能. 在接下来的章节中,我不打算介绍计算机程序设计的入门知识,而是假定者已有了一定的基础.预备知识实际上非常简单,但初学者恐怕需要一些时间并动手实践,方能理解数字计算机的概念.者应该具有如下知识. (a) 对存储程序式数字计算机的工作原理有一些认识.不一定需要电子学背景,但需要知道指令在机器内存中是如何保存和连续执行的. (b) 能够用计算机可以“理解”的确切术语来描述问题的解决方案.(这些机器不懂所谓的常识,它们只会精准地按要求干活,不会多做也不会少做.这是刚开始接触计算机时最难领悟的概念.) (c) 掌握一些最基本的计算机技术,例如循环(重复执行一组指令)、子程序的使用、下标变量的使用. (d) 能够了解常见的计算机术语,如内存、寄存器、位、浮点、溢出、软件等.正文中未给出定义的一些术语,会在每卷最后的索引部分给出简明的定义.或许可以把这四点归结为一个要求:者起码为一台计算机编写和测试过至少(比如说)4个程序. 我力图使本套丛书能满足两方面的需求.首先,这些书总结了几个重要领域的知识,可以作为参考书;其次,它们可以用作自学教材或计算机与信息科学专业的大学教材.为此,我在书中加入了大量的习题,并为多数习题提供了答案.此外,我在书中尽可能地用事实说话,言之有据,避免做一些含糊的泛泛而谈. 这套书针对的者不是那些对计算机只有一时兴趣的人,但也绝不仅限于计算机专业人士.其实,我的一个主要目标是使其他领域的广大工作者能够方便地了解这些程序设计方法,他们本可以利用计算机获得更丰硕的成果,但却没时间去技术刊物中查找必需的信息. 本套丛书的主题可以称为“非数值分析”.在传统意义上,计算机是与方程求根、数值插值与积分等数值问题求解联系在一起的,但我不会专门讨论数值问题,最多顺带提一下.数值计算的程序设计是一个发展迅猛、引人入胜的领域,目前已出版了许多相关图书.不过,从20 世纪60 年代初期开始,计算机更多地用于处理那些很少出现数值的问题,此时用到的是计算机的决策能力而非算术运算能力.非数值问题中也会用到一些加法和减法,但基本不需要乘法和除法.当然,即便是主要关注数值计算的程序设计的人也可以在非数值方法的学习中受益,因为数值程序中也会用到非数值方法. 非数值分析的研究成果散见于大量科技刊物中.通过研究,我从大量文献中提炼出了一些可以用于多种编程场合的最基本的方法,并尝试着将其组织为一套“理论”.同时,我还展示了如何应用这一理论解决大量的实际问题. 当然,“非数值分析”是一种太过负面的否定性的提法,使用肯定性的描述语来刻画这一研究领域要好得多.“信息处理”对于我们的内容而言过于宽泛,“程序设计技术”又显得太狭窄了,因此我提出用算法分析来概括本套丛书的主题比较恰当,这一名称暗示我们将探讨“与特定计算机算法的性质有关的理论”.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值