1)解决递归问题的最好办法就是抽象,从一般到抽象。例如从3个盘子的hanoi到n个。
2)第二步是引入合适的记号,便于思考。name and conquer。例如这里用T(n)表示n个盘子的hanoi。
3)试探一些较小的n。例如n=0,1,2,3时的解法。聪明的数学家是不吝小小的实验的。
4) 最后一步:如何从小场面引申到big picture. IQ就体现在这个地方了。
要注意的是,递归只是给出了间接地,局部信息,并不是说给出了问题的答案,我们必须找到如何解递归的办法。
解递归的第一个办法就是先根据n较小时的结果去推测一个结论,然后去证明(通常采用归纳法)
一些英文术语:
yield: 产生什么结论。例如公式啥的
formula: 公式
hence: 因此
inequality: 不等式
mathematician: 数学家
stacked:堆在什么地方
check: 检验
recurrence:递归
boundary value: 边界值
equation: 等式
mathematical induction: 数学归纳法
hold: 保持性质。例如 formula holds when n is replaced by n-1. 公式在从n-1变成n时仍然成立
expression:表达式
prove:证明(公式,定理什么的)
clairvoyant: 有洞察力的(例如发现一个公式或定理或解决方案什么的)