阅读《大道至简》第二章读后感

这一节取得标题是懒人创造方法,实际上是一个引子,通过一些实际生动的案例说明创造方法对于提高项目效率的意义。我理解的核心是:创造更加高效的方法胜于用简陋的方法埋头苦干,“磨刀不误砍柴功”嘛!

李冰通过观察生活现象,基于物理现象改进了开山的方法;而愚公只是用一个简单粗暴、低效的方法来移山。很明显李冰的效率很高,在有限的时间内完成任务(至少在秦国灭亡前),而愚公的结果则显得遥遥无期,肯定可以移走,但时间开销太大。对比二者,虽然都可以可行的解决方案,但显然愚公的方案比李冰的差无穷的距离,而且李冰的项目是有实际意义的,对完成项目的时间和动用的资源是有限制的。需求和条件限制迫使李冰不得不寻找更高效的方法,而不是因为懒才想方法偷懒。

我是数学专业的,没有系统的学习过软工的课程,但是我对算法的重要性理解是十分深刻的。数学也是需要写程序的,不同于软工要搞一个应用的大项目,我们至少要能用软件代替我们进行一些计算,而这些复杂的计算是没有现成的软件的,只能自己写。在我解决的一些优化问题中,常常遇到一些寻找最优解的问题,在所有可能的解空间中寻找最优解。一个最简单暴力的先发是:遍历所有可能结果,比较大小,找到最优解,这个结果一定是最优的,没有问题。但是,当考虑的属性(或数据维数)比较大,或者需要反复迭代的算法,即时原始数据只有n(n<10^3,反正不是很大)个,计算的次数的数量级都会达到10^n(10^1000左右)这么多,2015年全球最快最快的超级计算机计算速度达到3.386*10^18次每秒,这尼玛什么时候能算完?

实际中人们是用各种各样高效的算法来选取最优值,比如线性规划的单纯性法、模拟退火法、dijkstra方法、粒子群、梯度下降法等,这些方法都是经过验证的,虽然不一定取得最精确解,但可以在有限的时间内得到理想的近似解。就像愚公如果改进方法,把家搬了不就完事了?

说回到计算机编程上的算法,文中举的例子:编程从面向过程到面向对象的改进,我觉得这其实是实际编程的需要,程序越写越大,将程序写在一个文件里已经无法在适应编程人员的操作需要,效率低下,所以人们发明了模块的概念。我觉得这是一个伟大的想法,面向过程确实可以解决一切编程(我最早学的C,面向过程)。但是当项目庞大,代码成吨的时候,在一步步的写命令就非常复杂,开发人员的效率极低。面向对象(我后来学的一点c++和现在的java)则很好的解决了这个问题:所有的大问题可以完全分解为最基本的步骤,但也可以分成一个个独立的模块,在搭建结构的时候直接把模块拿过来用就行,模块于模块可以继续组成更大的模块。就像计算1+1+1+1+1

你可以:1+1+1+1+1=2+1+1+1=3+1+1=4+1=5

也可以:1+1+1+1+1=(1+1+1)+(1+1)=3+2=5

减少重复操作;

还有:1+2+3+9+8+7

你可以:1+2+3+9+8+7=(1+2+3)+(9+8+7)=30

也可以:1+2+3+9+8+7=(1+9)+(2+8)+(3+7)=10*3=30

当然,第二个例子对于各位大学生来说是没有什么难度,我只是举一个例子:通过合理的设置模块结构可以降低计算难度。毕竟不用进位且直接将三个相同的数相加计算更为简单。

这就是我对计算方法的理解,毕竟不是软工的,不敢多言。

顺便推荐一片相关博文《日学一算法---平方根倒数速算法

链接:http://blog.csdn.net/xiaoguohaha/article/details/21652643

仅仅在底层算法上的改进,就使得程序运行速度大为提高,同样性能的计算机,能完成更多的计算任务。

最近,QUAKE的开发商ID SOFTWARE 遵守GPL协议,公开了QUAKE-III的原代码,让世人有幸目睹Carmack传奇的3D引擎的原码。这是QUAKE-III原代码的下载地址: http://www.fileshack.com/file.x?fid=7547。我们知道,越底层的函数,调用越频繁。3D引擎归根到底还是数学运算。那么找到最底层的数学运算函数(在game/code/q_math.c), 必然是精心编写的。里面有很多有趣的函数,很多都令人惊奇,估计我们几年时间都学不完。在game/code/q_math.c里发现了这样一段代码。它的作用是将一个数开平方并取倒,经测试这段代码比(float)(1.0/sqrt(x))快4倍:

时间: 2024-08-29 20:58:04

阅读《大道至简》第二章读后感的相关文章

大道至简第二章读后感

 读了大道至简第一章的老愚公的故事,我们知道了勤劳的人总会能够完成所有的困难,最终完成自己的任务,完成自己的目标,愚公移山,看似不能完成,但是与共凭借着子又生孙,孙又生子,活生生的完成了这一个不可能完成的任务,但是在旁人眼里看来,又有一些古板,耗时,毕竟动用了不知道多少代子孙的时间,反而观之第二章的李冰,修建都江堰,也需要“移山”,而且山上又全是石头,要是按照愚公的办法,那得修到什么时候才能完工?但是他发现了最终的方法,用火烧石头,然后浇水,石头就会变得酥脆容易挖走,这就是一种智慧. 从某种情况

《大道至简第二章读后感》

第二章开篇将愚公与李冰作比较,愚公只知道日复一日,年复一年地挖山,毋庸置疑,他是个勤奋的人,然而,他的勤奋让他没有时间来找寻一个更方便快捷的方法,相比之下,李冰用懒人的方法凿了一座山,用时比愚公少,人力资源消耗小,同是战国时期,愚公就要碎石击壤,而李冰已经懂得积薪烧之了,换句话说,是懒人造就了方法. 李冰积薪烧之的方法来由一次闲极无聊的给夫人烧饭,发现垒灶的鹅卵石被烧的爆裂开来,遇水于甚,所以说人的精力是有限的,提出新的方法,解决的将是影响做事成效的根本问题.早期的程序是将代码打在穿孔纸上让计算

李冰烧山——大道至简第二章读后感

读了第一章的愚公移山,让我更深刻的体会到了编程的精义,就是把一个复杂的问题分解成一个个小问题,逐个解决.就像编写一个最大公约数,就要先想出两个数的最小公倍数,而最小公倍数的求法,就可以用1开始一直除到这个数的一半,然后再找出能除尽的最大的数.这样,一个问题就被我们分解开,快速的解决. 而第二章,主人公变成了李冰.战国时期的李冰凿了一座山,他的方法和愚公有着天壤之别,愚公会凿,李冰会烧.在两千年前的某一天,闲极无聊的李冰下厨给夫人炒了一个小菜,他突然发现垒灶的鹅卵石被烧得爆裂开来,遇水尤甚.从此<

大道至简第二章—懒人的方法

大道至简第二章—懒人的方法 僰道有故蜀王兵阑亦有神,作大滩江中.其崖崭峻,不可凿:乃积薪烧之.故其处悬崖有赤白五色. ----华阳国志卷三-蜀志 在第一章中作者引用愚公移山的典故向我们介绍了编程的精义,以愚公为例向我们介绍了个编程人员应具备的素质.而在第二章,作者通过蜀郡太守李冰烧石破山建造都江堰的故事告诉我们我们只是勤奋是不够的.如果李冰像愚公那样日复一日的敲石碎山,就不会有空闲时间去观察,去思考了.那也不会有“积薪烧之”的事情了.所以李冰乃是闲人一枚. 人的精力是有限的.愚公而愚公可以多吃点

读大道至简第二章有感

大道至简第二章的题目是"是懒人造就了方法"而开头也写到李冰的开山并与愚公移山做了比较,无非就是想用具体的例子来证明懒人造就方法的观点.而其深层的含义便是要学会观察,学会思考,同样是一件事,很多人都能做,有人用的时间长资源多,而有的人则截然相反,这就说明了观察思考的重要性,而相对于编程来说,一个简单的比较大小的问题,有的人比较五次,而有的人只比较四次就能运行出结果,这就是程序的优化,也是思考的结果 一百万行代码是可以写在一个文件里的.这反映了一个很常见的问题,很多初学者比如我们总是在关注

大道至简第一章读后感(java伪代码)

大道至简第一章用Java伪代码编写第一次写,难免有错误,欢迎指正和指导 //1 愚公移山public class yishan{public static void main(String[]args){while(山还在){扣石垦壤,箕畚运于渤海之尾:if(愚公死&&子孙存在)愚公=愚公儿子: //有子复焉,子又生孙,孙又生子else if(愚公死&&无子孙)//考虑没有子孙的情况break: }if(山平)System.out.println("山已平,指通豫

《大道至简第二章》读后感

在第一章我们学到了编程的精义,引用了古代愚公的故事,而在第二章,作者又引用了李冰凿山的故事为我们揭示了这章的主题,“是懒人造就了方法”. 应该说我非常喜欢作者的这个观点吧,因为我也是懒人一族,每当朋友.家人说我真是懒得时候,我总是骄傲的说“世界是懒人创造的哦,不要看不起懒人”.当时虽然是说笑的,但是心里很认同.就拿愚公.李冰这事来说,目的同样是凿山,但是愚公直接是“碎石击壤”,率着家人世世代代凿山,没有经过任何分析,换句话说愚公太勤奋了,所以即使力量微不足道,还是可以世世代代传承凿山这件事,并且

大道至简第二章观后感

大道至简读后感 第二章的标题是懒人造就了方法.也就是说只有懒的人才有时间和精力去想出各种可以提高做事效率,即事半功倍的方法.在文章中作者所提到的<华阳国志>里所写的李冰,我们可以肯定他不是一个很勤快的人,就像愚公,如果他是一个勤快的人,那么他肯定也是和愚公一样扣石垦壤,自然而然,他也就不会,也没有精力去发现“积薪烧山”的方法了.很显然,勤快的人有勤快人的方法——凿石开山,相应的懒人也自有懒人的方法——积薪烧山.这说明懒人比勤快人有更多的时间去思考,观察,进而发现一些捷径.人的精力终究是有限的,

读《大道至简-第二章》有感

在生活中,“懒惰”常常被人讥笑,“懒人”更是不受欢迎.而劝人勤奋的名言典故却数不胜数,  什么“业精于勤,荒于嬉”,“书山有路勤为径,学海无涯苦作舟”.“三更灯火五更鸡,正是男儿读书时”.更有“头悬梁,锥刺股”等等.人们以勤为荣,以苦为乐.但当我读完<大道至简>的第二章后,我对“懒惰”有了新的认识. 这一章别出心裁的将“愚公移山”和“李冰凿离堆”的故事放在一起进行对比.文中的“懒惰”是指那些讨厌吃苦受累,懒于无效劳动,不愿因循守旧,但是却积极开动脑筋,不断创新,想出省时省力的懒办法,他们是聪明

大道至简第一章读后感 Java伪代码形式

观看了大道至简的第一章之后,从愚公移山的故事中我们可以抽象出一个项目, 下面用Java 伪代码的形式来进行编写: import java(愚公移山的故事) //愚公移山 public class yugong { //项目的目的:惩山北之塞,出入之迂: //项目的基本沟通方式:聚室而谋曰: //愚公确定的项目的目标:毕力平险,指通豫南,达于汉阴: //项目的技术方案:扣石垦壤,箕畚运于渤海之尾: //项目中的三名技术人员以及工程管理人员:(愚公)率子孙荷担者三夫: //力量较弱,富有激情的外援: