粗略估算的能力

粗略估算,本以为是靠直观感觉的猜测,实则非然也。记得在初高中的时候经常干这种凭感觉猜测的事来,现在却突然发现自己的这个爱好渐渐的被磨掉了,现在的大脑空空如也,可惜了……

好了,闲话不多说了,继续正题:估算。

看了珠玑第七章的估算内容部分后感觉这部分写的真不错啊。尤其是那个72法则和Little定律,堪称一绝啊,以后摸不准会用的呢。

72法则:

假设一年利率r%投资一笔钱y年,金融资本的“72法则”指出,如果r*y=72,那么你的投资差不多会翻倍。近似很精确啊:以6%的年利率投资1000美元12年,可得到2012美元,以8%的年利率投资1000美元9年,可得到1999美元。很近似吧。

假设一个指数程序的解决规模为n=40的问题需要10秒时间,且n每增加1时间就增加12%。由72法则可推出n增加6,时间就翻倍,如果n增加60那么运行时间就为原来的1000倍(因为翻十倍即为:2^10=1024~1000),于是当n=100时,程序将运行10000秒,当n增加到160时,运行时间增加到10^7秒。(什么概念?可以看看珠玑怎么说的)

好,接着是Little定律:

考虑任一个带有输入输出的系统,系统中物体的平均数量等于物体离开系统的平均速率和每个物体在系统中停留的平均时间的乘积。(并且为物体的离开和进入的总体出入流是平衡的,那么离开速率等于进入速率)。作者举了个搞笑的例子:如果一个火爆的夜总会可以容纳60人,每个人在里面逗留的时间约为3小时,因此进入夜总会的速率大概是20人每小时,现在队伍中前面有20人,这也就意味着我们要等大约1小时,不如我们回家读《编程珠玑吧》。O(∩_∩)O~,作者多么幽默啊,这个故事也多贴切啊。转而作者利用次定律应用到多用户系统的响应时间:比如平均思考时间为z的n个用户同时登陆响应时间为r的任意系统,每个用户的周期都有思考和等待两个阶段组成。元系统的平均负荷为n,平均响应时间是z+r,吞吐量为x(每个单位时间处理的作业数量)那么n=x*(z+r)  -->r=n/x-z.

多么经典的定律和案例分析啊。如果一个城市的平均寿命是65岁,那么该城市的死亡率是多少呢?按照Little定律,大约是1/65,不信?你统计试试吧!?

posted on 2011-04-12 18:08  kevinferry  阅读(278)  评论(0编辑  收藏  举报