Submitted by gouki on 2008, October 18, 9:27 PM
原文来自博客园,把代码全部翻译成了PHP的,因为这些东西对PHP同样适用。
函数递归调用是很常见的做法,但是它往往是低效的,本文探讨优化递归效率的思路。
1.尾递归转换成迭代
尾递归是一种简单的递归,它可以用迭代来代替 比如 求阶乘函数的递归表达
PHP代码
- <?php
- function f( $n = 0)
- {
- if($n<=0)return 1;
- return $n*f($n-1);
- }
- ?>
可以转换成完全等价的循环迭代
PHP代码
- <?php
- function f($n = 0)
- {
- $r=0;
- while( $n-- > 0)
- $r *= $n;
- return $r;
- }
- ?>
尾递归是最简单的情形,好的编译器甚至可以自动的识别尾递归并把它转换成循环迭代。
更多看详细
» 阅读全文
Tags: php, 递归, 效率, 优化
PHP | 评论:1
| 阅读:27830
Submitted by gouki on 2008, October 17, 9:14 AM
由于最近天天加班,连载可能会延迟了,希望大家莫要见怪,不过我仍然是会抽空看书并添加的。
努力努力
为了那句:今天不努力工作,明天努力找工作
Tags: 更新, 连载, 数据库
Misc | 评论:0
| 阅读:20948
Submitted by gouki on 2008, October 16, 9:35 AM
昨天,新闻里最多的应该就是盗版XP会在20日后正式每分钟黑屏一次(哦,是桌面背景),猜想应该是vista的销售量大不如往,微软不得不作此动作啊。因为这次的动作中,vista等新版操作系统都不在所包括的范围内。
可惜这样的事情在国内变成了什么?在QQ上看到了什么?
QQ留言
- 有电脑的注意了啊: !!! 最近大家在使用电脑的时候系统是不是会提示你所使用的微软产品是盗版软件等等,而且还会在右下角出现蓝色的小星星~~这是因为: 由于美国最近要针对中国上诉WTO知识产权保护问题,微软正在为美国政府搜集相关证据,在最近自动更新中包含检测盗版副本程序,为了咱中国利益,请大家不要开启自动更新。如果起诉成功,中国将要赔款几百亿.已经开启当提示要你安装“正版增值计划”请别安装!安装后会在任务栏右下角出现一个蓝色五角星符号!!!这样就会被微软追踪锁定,以向美国政府提供证据!!! 请大家转到其他群上顺带一个,大家转发,这个直接影响所有中国电脑用户的利益 提醒大家,以后去麦当劳,肯德基吃饭一定要记得要发票。麦当劳,肯德基每年在中国因为我们不习惯要发票的原因而掠走将近20亿的税收,把这条信息完好(不加任何修改复制)发至其他人。
用盗版还有理了,真的是没有想到。就是番茄花园被抓的时候,很多人在力挺番茄花园。记得微软十几年前就说过,盗版你想用就用,不过总有一天,你们是会付出代价的。
现在,就是付出代价的时候了。
XP如果不使用 ,对我来说,确实也没有什么大问题,尝试了一下UBUNTU,基本使用也没有什么问题,上面也有openoffice。那就证明文字处理也没有啥了。编辑器大多是免费的,还有一个非常强大的VIM(虽然我还是不会用),开发工具有zend studio for eclipse,QQ也有,PIDIGN也有邮件有mozilla的,游览器也是,还有什么是没有的呢?当然对于国内的人来说,最大的就是支付了吧。虽然阿里软件支持FIREFOX,但那只是支持windows下的,现在只有希望他们能够支持LINUX等就好了。
尝试转移吧,如果你不愿意转移,那就购买品牌机,里面都有正版系统的。不废话不感慨了。。。
Tags: windows, 微软, xp, vista, 黑屏
Software | 评论:1
| 阅读:20117
Submitted by gouki on 2008, October 15, 9:22 AM
一直不相信猫有九命,但事实上,我感觉出来了。
老婆家有一小猫,特别调皮
刚刚捡回来没多久,从6楼摔下去,好象是摔在自行车上,导致腿骨折,老婆(当时还是女友)哭了很伤心,带它去看病,打钢钉。乖了大概两年左右。又从6楼跳了下去,这回比上次严重多了,抱回来的时候,嘴边都在吐血,气是有一口没一口的,可就是这样,它还是顽强的活了下来。
再过了一年左右也就是前段时间,国庆前,它又在尝试飞行,结果,可想而知。等找它的时候已经不在楼下了,楼下打扫卫生的阿姨说是看到有人捉猫的,笼里有三只,其中一只是白猫。
这回,老婆一家都是哭天呛地的,可是半个多月后,她们发现,猫又回来了。
感慨一下,以前只听过狗被抓走,然后可以认路回家的,不料猫也有这个能力,实在太强了。
从这件事上,我终于感觉到了,猫,确实有九命。
本文纯作感慨。。。
Tags: 猫, 丢失, 返回
Misc | 评论:0
| 阅读:16801
Submitted by gouki on 2008, October 12, 10:00 PM
PHP版本一直在更新,同样我们的代码也会随着服务器上的PHP版本的更新而不得不进行更改,但每次PHP的更新,几乎只是显示fix了多少多少BUG,但究竟会在版本升级的时候带来哪些问题,自己一点也不清楚 。
其实翻开PHP的手册,你也能找到这些,现在方便了,到我的博客上下载乔楚编译的最新的手册,翻开左侧树的最后一个节点:Appendices,找到:
展开这三个节点,你会看到在版本更新的时候,PHP的核心加了哪些方法,去除了哪些函数(事实上这很重要,或许在你以前的项目里一直在采用XXX方法,但新版本去掉了,很可能你的程序就不能再运行了。。。)
当然你更应该看的是:Changes in reference handling,这里面介绍的是一些老的代码写法和应用在新的代码里会出错的例子,如果你的代码里沿用了这些旧的方法,那么,你先考虑一下升级的代价吧。
Tags: 升级, bug, 解决方案
PHP | 评论:0
| 阅读:25003