您的位置:首页 > 理论基础

学会像计算机程序一样思考

2012-08-17 22:42 225 查看


学会像计算机程序一样思考

学会像计算机程序一样思考

by ccchu

题记:

生活中有很多事情是非常复杂的,事物都非孤立存在,牵一发而动全身,我们在顾及多方面的影响时往往会心力交瘁。而计算机程序从来不感到疲劳,是不是可以学习学习呢?

第一章:事情的开始

同学为当时我们的本科班级做了一个纪念大学时光的游戏,以穿越为故事导引,夹杂玄幻色彩。其中一个地方是解开一个八角星的阵法:



你可以按下8角的任意一角,此时你按下的位置以及它所连接的两个位置的状态都会变化,当所有位置的地刺都突出时,阵法被解开。

正上方为1号位,顺时针的第二个位置为2号位。当按下1号位时,就变成这样:



那么,我们怎样去解开这个阵法呢?

第二章:像计算机程序一样的思考

当然,你可以随心所欲的乱按,幸运女神会在某个不经意的时刻降临,让你接近成功,然后,就成功了。确实,这是一种方法,而且它经常的奏效。但是正如题记所说,我们往往为因为事物间的相互影响而心力交瘁,这样按下去的另一个结果可能是----抓狂继而又束手无策,恨不能把屏幕上空位置的地刺一个个拔起来。

这个时候,我们决定静下心来想一想。我们想到了计算机程序,虽然它们相比于大脑来说经常很傻很天真,但是它们总是能起作用,于是我们决定弃明投暗一把。

计算机程序,它很多时候也是很复杂的,假如我们完成一个大程序时,想把它全部写在一个主函数里,结果往往比上面我们经历的情况还要令人沮丧。于是,我们把大程序肢解,分成一个一个的子函数,然后主函数调用子函数,完成整个功能。在完成子函数时,我们感到很轻松,因为只需要关注一点点的东西,它也只影响一点点的东西。在完成主函数时,我们又感到很轻松,因为我们只需要使用子函数,而不关心它具体什么过程,这样需要关注的东西,以及相互的影响在这一层面同样减少了。

就这样,我们突然有了计算机程序的思维,于是我们先不关注那么多东西,对着上面的八星图,我们开始发呆。我们想到,刚才我们按了一下,一下子就起来了三处地刺,这开阵法速度多快啊。于是我们幻想,要是剩下的三个空位置也像刚才那种形状,一下子按起来多好~~接着,我们就幻想有一种简单的方法能一个一个的移动这些空的位置到我们想要的地方,最后,哗的一下,就全按起来了。这一瞬间,我们又觉得,这好像是有可能的,假如我们能找到一种方法把空位置与相邻刺位置互换,剩下的不就好办了?

于是,我们开始寻找这个方法:“将位置n和n+1的状态都变化,而其它状态均不变”。我们在纸上逐个尝试这种方案的可能性,我们很快发现,如果我们按下n-2和n+3位置后,n和n+1的状态都变化,而其它状态保持不变。这样我们就相当于可以把空状态沿着刺状态随意一格一格移动了。

有了这个方法,在看全局形势,我们豁然开朗,现在,我们只要把7号位的空逆时针移动到5号位,然后,就能一下子按起来全部啦!

于是,我们着手操作。



首先把7号空移动到6号上,按上面的方法,我们按下9号位(就是1号位)和4号位。



然后把6号空移动到5号上,按上面的方法,我们按下8号位和3号位。



激动人心的时刻到了,按下5号!



哇,解开了!

整个过程,我们突然感到轻松无比,因为我们在移动的过程中避开了繁琐的互相影响,而是使用了一个方法,按我们直观易见的过程,一格一格的移动到我们想要的位置。

第三章:脱离计算机程序的思维

我突然看到西红柿和鸡蛋一齐飞过来,于是我立即顶起一只铁锅。

大脑之所以比计算机程序高级,是因为它会总结。我们向计算机程序学习了一票东西后,得总结一下。计算机程序学会解开这个阵后,它几乎永远只能解开这个阵,而不能去解开七星阵,九星阵。而我们向计算机学习后,我们总结,其实,就是把一些影响众多的基本步骤组合起来,形成一个影响较小并且为我们所直观认识的步骤,我们把这个组合步骤称作一个函数,然后使用这个函数完成我们的任务。

有了这个思想,我们发现还可以解开各种星阵,可以去解魔方,甚至发现我们还可以去KTV唱上一曲最爱的靖子然后潇洒的离去。

而对于程序的离开,我们是很悲痛的。现在大家总结它,可见它的精神感人之深。我们大家应该学习它毫无自私自利之心的精神。从这点出发,就可以变为大有利于人民的人。一个人能力有大小,但只要有这点精神,就是一个高尚的人,一个纯粹的人,一个有道德的人,一个脱离了低级趣味的人,一个有益于人民的人。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: