程序员的数学 - 递归 - 自己定义自己 - 阅读小结

时间:2022-11-27 23:59:10

递归

当碰到一个难题,我们需要联系到汉诺塔,进行如下思考:

“能够将复杂问题转换为较为简单的同类问题么?”

这就是递归的思维。

根据递归结构建立递归公式,并最好总结出递归解析式。

汉诺塔

递归公式:

H ( n ) = { 0 ,  n = 0 H ( n 1 ) + 1 + H ( n 1 ) , n = 1, 2,3,4....

阶乘

递归公式:

n ! = { 1 ,  n = 0 n ( n 1 ) ! , n = 1, 2,3,4....

斐波那契数列

递归公式:

f ( n ) = { 0 ,  n = 0 1 , n = 1 f ( n 1 ) + f ( n 2 ) , n = 2,3,4,5..

杨辉三角形 与 组合总数

找出问题中的递归

  1. 从整体问题中隐去部分问题,
  2. 判断剩余部分是否和整体问题时同类问题

=>

  1. 从n层的整体问题中隐去部分问题。
  2. 判断剩余部分是否是n-1层的问题。