-- 经济学和计算机的共通之处
最近在学习薛老师的北大经济学和吴军的计算机介绍时发现原来经济学和计算机之间是相通的。计算机软件的好与坏和经济系统的好与坏都可以用这一个指标去衡量。
- 为什么同样的硬件设备,在计算同一件事的时候有的更快有的则慢一些
- 为什么相同的地方,相同的人,相同的忙碌程度,但是两者的经济产出却截然不同
这两个看似不相关的事情,背后却隐藏着同样的道理。不论是提高计算机软件的运行速度,还是还是改善某个地区的经济状况,都需要做到一点
追求效率,减少浪费
接下来就让我一一介绍这一标准在这两个领域当中的体现。
优化软件就是减少无用功
先来说一说吴军老师第79封信中所描述的锦标赛排序算法。
这个算法所要解决的问题如下
有25名短跑选手竞争金银铜牌,赛场上有五条赛道,因此一次可以有五个人同时比赛。比赛不计时,只看相应的名次。且假设每个选手的比赛成绩都是稳定的,即每次比赛的用时不变。问,最少需要几组比赛才能决出前三名?
这个问题很有意思,接下来我们来看两种计算方法,从中体会今天减少无用功如何提高软件性能的。
首先是最朴素的想法
- 将25个选手分成五组,每组决出第一名
- 将每组的第一名组成一队,决出第一名
- 将第一名移出,由所在同一组的后一名顶替,决出第二名
- 将第二名移出,由所在同一组的后一名顶替,决出第三名
所以这种方法一共比赛了八组。
这个方式中有一些不必要的步骤,借用一下吴军老师的图片解说一下。不得不说吴军老师的专栏中解说的非常详细,我这里解说地真是非常简陋。
这张图是对上面这个方法中第六组比赛的一个示意。首先25个人先分成了A到E五组,每组的排名顺序由1至5。当这组比赛结束后,产生了A1-E1的排名。
按照刚才的方法我们应该用A2替换掉A1,再做一组比赛。然而有意思地方来了。因为我们只需要选出前三名,所以很明显,D1和E1是不可能入选的。也就是说
让D1和E1继续比赛就是做无用功
而经过仔细的筛选,只有A2, A3, B2有可能角逐第二、三名。所以接下来只要再比赛一次就可以得到前三名是谁了。
具体分析我这里就不再班门弄斧,大家可以查阅吴军老师的第79封来信深入学习。
我希望大家看到的是在计算机软件的优化过程当中,减少无用功就是提高了软件的效率。
寻租是在做无用功
同样的,在薛兆丰老师的北大经济学课程当中同样体现了这思想。其主要内容在第20讲《寻租--乞丐没有白拿施舍》中。
薛老师先抛出了个问题:
为什么每个国家里面的人都非常忙,有些国家很富裕,有些国家忙那以后还是很穷?
我想大家都能够猜到这个答案,但是我还是先来说一下薛老师在文章中举的乞丐的例子。
一般来说大家认为乞丐得到的施舍是白拿的,乞丐得到的钱不过是从我们的口袋转移到了他们的口袋。但是实际情况却并不是这样。用经济学的概念来讲,施舍也是一种资源,资源是有限的,而有限的资源必然需要竞争。那么最后的结果就是,乞丐需要消耗其他的资源来获得施舍。
然而乞讨这种行为和其他的生产行为相比,都要消耗不同的资源,但是乞讨行为却不对经济生产产生任何正面作用。用大白话来讲就是资源被浪费掉了。
通过对乞讨行为的研究,经济学家图洛克指出,经济生活中的寻租行为同样是消耗了资源但不产生任何有用的价值。这就是为什么有的国家大家都很忙,却依然贫穷的原因。
因为大家都在做无用功
成长也是要减少无用功
写到这里,发现只写了两段,总觉得少了点什么。就狗尾续貂,加上一点点引申。
生活中我们有时候会发现有的人每天看上去也很忙,忙得跟打仗一样,但是不论是经济能力还是业务能力却依然是在原地打转,毫无起色。
我想可能他们也是做了无用功。
如果我们能在做事的时候,不盲目追求量,而是能够追求效率,或许能够取得更好的结果。
与大家共勉