递归问题

书到手了,所以开始对数学发起进攻了。第一章讲解递归问题,内容一下午很快就过完了,其实就讲解了三个问题。
  第一个是很熟悉的河内塔问题,毕竟已经接触过了,而且内容也较简单。其实这个问题还是主要为了介绍解决这类问题的一般步骤,通过研究较小情形以寻找规律,再推广到一般情形以进一步证实一般规律得到递归式,接着根据递推式求得相应的封闭式,此封闭式称为问题的递归解。在运用到计算机时,很多时候推导出递归式就可以解决大部分问题了,毕竟封闭式能够实现差不多O(1)的复杂度实在很难,而且在数据是变化的情况下很多时候封闭式是不存在的,不过对结论的进一步推导或者简化却是很有必要的,很多时候做题得到一个结论认为可行就不再继续思考了,真正去打比赛当然可以,不过对于平时确是限制了自己思维了。在之前数论的第一次作业任务时,记得有个题目我推导出来了一个结论,并确定可以实现就没有继续思索,提交之后也确实AC了,但搜了题解后才发现,原来还可以继续化简,使得结论的代码更易实现。当然,这对于结果来说其实并没有多少作用,但除了赛场,都不能只求结果。
  第二个问题是用直线分割平面问题。当然,也是接触过的,而且方法也和我先前已有的方法相同,只不过书上介绍的是当已经得到了最优的Aₙ结果后再考虑Aₙ-Aₙ₋₁这新增的是怎么来的,而我会去观察该用什么方式去切割才能得到更多的区间,找到以后再得出结论。前一种方式没有根据性,所以不能完全确定这就是最优解,后一种方式有根据性,在考虑全面的情况下可以几乎确定能够得出最优解,但要求准确分析题目,各有益弊吧。推到封闭式时,求解三角阵列保龄球数目(虽然我们都已经熟知1~n的和是n*(n+1)/2)时把Sₙ反向书写后相加其实就是将三角形倒置后于原三角形拼接成一个平行四边形,不过这里不会去将两个三角形临接的边进行重合,所以就由原先边长和高都为n的三角形转换成了底为n+1高为n的平行四边形,面积除二即为结果(具体图等在书上画了,这里就不展示了)。再然后是对这一问题的推广,当用折线切割平面时又会怎样。这里介绍的是将折线补全为两个直线切割平面的情况去对比,进而得到n条折线切割与2n条直线切割间的关系,思路确实很好。不过,我是延续先前的思路解决的。即每一步都用新的折线去切割以得到最多的新区域(这一思维挺像贪心的思维),再找到新加的区域与原先情形的关系,递推关系虽然不同(跟直线切割没关系)但得到的封闭式是一样的,(具体推导过程也在书上写了,这里也不展示了)。
  第三个问题是约瑟夫问题,较前两个难度提升了,当然看懂还是很容易的,不过由此问题推广的各种结论以及得到的一般约瑟夫问题解实在让人眼前一亮。这里考虑的不再是解决已有的问题了,而是发散的考虑还能从这个问题得到的结论得出什么其他结论或者更高级的结论,这是提醒我们去培养发散性思维思考问题。
  综合看下这三个问题,难度是逐渐增加的。第一个问题较简单,所以思路也很单一,不需要什么其他方法。第二个问题稍有难度,但问题结构简单(或者说贴近于我们的一般思维),所以也能够有自己的想法,并且以自己的方式解决问题。第三个难度进一步加大,并扩展思考范围,让人很容易接受,并逐步明白。不过因为问题结构较复杂,且给定的方法有那么完美,所以感觉跟在作者脚后跟后面如此舒服,结果回头看来时,走过的路如此清晰而周遭的环境如此模糊,所以也没有什么自己的想法。换句话说,我接受了这一思路,并不说明我掌握了这一种思维,当我能够从自己的角度用自己的方法解决这一问题时,我应该就是真的懂了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值