关于递归的思考

记忆化递归即dp;

关于递归的思考(大事化小,小事化了)。(dp,分治)。

引:递归是一种解决问题的思想,在信息学中无处不在他的影子,所以,我们必须对递归这种思考方式有充分的了解,才可以成功。

  1. 确定问题及思考递归函数的意义(描述问题)

:递归思想通常使用递归函数实现。

  1. 分解问题至相同的子问题(将问题规模变小)

:因为信息学的不确定性,所以我们可以先让较为简单的问题规模变小,然后在让较为复杂的问题规模变小,(针对分治法),然后试图让原问题规模变小(所谓问题规模变小,是较原问题而定的,只要使其变小,都可以)<其中有非常重要的一点,那就是子问题和原问题本质一样,完全一样,而这点通常被人忽视>,同时我们在将问题规模变小的过程中,如果始终没有头绪,则应该改变描述问题的方式。(在此过程中边界条件就很容易的求出了)。
总而言之,统而言之:递归就是将大的问题化为性质相同的小问题(递),使其拥有相同的逻辑处里项。然后小问题又可以使大问题得到解(归)。

【注意,将问题化小的方法千变万化,需要积累,但是核心不变(大事化小,小事化了。)】

递归的证明:数学归纳法;

注意描述问题的方法不止一种,转移问题的方法也不止一种(凡是能化小的都可以)问题

取一步:1.相同逻辑处里项2.子结构的包含性。

1.汉诺塔性问题:刚开始一点思路都没有觉得问题特别复杂,其实根据我做的这一丢丢题看来,步骤或者说是过程描述性强的题目,都有一定的规律,可用递归递推去做。

这样的题一定有一定的规律,如当n=5时,再稍加变动就恢复n=4时的情况,这就是有规律可循了,问题就变得简单;再好比前面汉诺塔的题目,题目会仔细

说明怎样去移动,那就有规律可循了,不多解释了,和这个题情况一样,又会恢复到n-1的状态;(规律性递归)黑白棋子,汉诺塔

posted @ 2017-09-21 14:43  star_eternal  阅读(132)  评论(0编辑  收藏  举报