1、要理解可能难以解决的复杂问题有一个简单的递归解决方案。
2、学习如何递归地写出程序。
3、理解和应用递归的三个定律。
4、将递归理解为一种迭代形式。
5、实现问题的递归公式化。
6、了解计算机系统如何实现递归。
像阿西莫夫机器人,所有递归算法必须服从三个重要的定律:
- 递归算法必须具有基本情况。
- 递归算法必须改变其状态并向基本情况靠近。
- 递归算法必须以递归方式调用自身
可视化递归
turtle库的应用
谢尔宾斯基三角形
在本章中,我们讨论了几个递归算法的例子。 选择这些算法来揭示几个不同的问题,其中递归是一种有效的问题解决技术。 本章要记住的要点如下:
- 所有递归算法都必须具有基本情况。
- 递归算法必须改变其状态并朝基本情况发展。
- 递归算法必须调用自身(递归)。
- 递归在某些情况下可以代替迭代。
- 递归算法通常可以自然地映射到你尝试解决的问题的表达式。
_****_ - 递归并不总是答案。有时,递归解决方案可能比迭代算法在计算上更昂贵。