关于递归的思考
记忆化递归即dp;
关于递归的思考(大事化小,小事化了)。(dp,分治)。
引:递归是一种解决问题的思想,在信息学中无处不在他的影子,所以,我们必须对递归这种思考方式有充分的了解,才可以成功。
- 确定问题及思考递归函数的意义(描述问题)
:递归思想通常使用递归函数实现。
- 分解问题至相同的子问题(将问题规模变小)
:因为信息学的不确定性,所以我们可以先让较为简单的问题规模变小,然后在让较为复杂的问题规模变小,(针对分治法),然后试图让原问题规模变小(所谓问题规模变小,是较原问题而定的,只要使其变小,都可以)<其中有非常重要的一点,那就是子问题和原问题本质一样,完全一样,而这点通常被人忽视>,同时我们在将问题规模变小的过程中,如果始终没有头绪,则应该改变描述问题的方式。(在此过程中边界条件就很容易的求出了)。
总而言之,统而言之:递归就是将大的问题化为性质相同的小问题(递),使其拥有相同的逻辑处里项。然后小问题又可以使大问题得到解(归)。
【注意,将问题化小的方法千变万化,需要积累,但是核心不变(大事化小,小事化了。)】
递归的证明:数学归纳法;
注意描述问题的方法不止一种,转移问题的方法也不止一种(凡是能化小的都可以)问题
取一步:1.相同逻辑处里项2.子结构的包含性。
1.汉诺塔性问题:刚开始一点思路都没有觉得问题特别复杂,其实根据我做的这一丢丢题看来,步骤或者说是过程描述性强的题目,都有一定的规律,可用递归递推去做。
这样的题一定有一定的规律,如当n=5时,再稍加变动就恢复n=4时的情况,这就是有规律可循了,问题就变得简单;再好比前面汉诺塔的题目,题目会仔细
说明怎样去移动,那就有规律可循了,不多解释了,和这个题情况一样,又会恢复到n-1的状态;(规律性递归)黑白棋子,汉诺塔
夫君子之行,
静以修身,俭以养德;
非澹泊无以明志,
非宁静无以致远。
夫学须静也,才须学也;
非学无以广才,非志无以成学。
慆慢则不能励精,
险躁则不能冶性。
年与时驰,意与日去,
遂成枯落,多不接世。
悲守穷庐,将复何及!