2018年1月16日 下午4:15
简略步骤:
- 现实生活中的步骤、策略、技巧、理论
- 如何用程序的特点去贴合你的想法
- 积极的:
- P1中的DFS,利用系统栈这个特性去解决“返回的”问题
- 消极的:
- p11中,dijkstra中的路径保存全部的路径的保存用程序来实现很复杂。这就是程序本身的特性限制了我们的思路实现。这时只能返回第一步
- 积极的:
具体分析
上面是我总结了两个步骤去分析问题,然后写成程序
首先,肯定我这上面写的内容来看依然是正确的:程序会给我们实现思路的过程中有积极和消极的作用,面对消极如何解决,怎样才算是消极?
其次,我今天又总结出不少新的理解。总结如下:
- 站的角度:用不同的的思维去解决问题(离开程序实现)
- 我的错误在于:p13中,对弗洛伊德中的path[maxsize]进行输出路径的函数写法的研究,我总是想通过一个特别具体的例子去分析,写成一步一步的步骤,然后从步骤中总结不同的情况,发现:其实关键在于“通过一个栈去记录你的分析过程中产生的数据”,这时说明我不通过递归的形式,只要我自己做出来的栈能记录数据就行了。此时,我想从详细的笨步骤中推理出递归的程序方法,但是,无论我怎样去分析,发现不是我实力不行,而是思路本身就是错误的,结论是:递归不可以从苯步骤中推理出来。
- 原则依然不变:是从现实的角度①———>程序实现②
- 以前没有意识到①的独特作用,认为①只是单一的步骤整理,没有发现思维在①中的关键作用
- ①是②的基础、前提,②也会反作用去①。这个反作用分为积极、消极。
- 积极:
- 当①使用的是分治的思维——>函数递归
- 当①可以抽象为数学函数时——>动态规划
- 我们平常说的暴力、分治、贪心、动态规划都是①中的一部分,是分析问题的一种方法,而不是程序②的实现方法。
- 易错点:在分析问题、写程序的整个过程中,最容易犯的毛病是:认为①就是只有笨步骤这一种方法。
- 最后,我补充一下我对①思路中四中角度的小的认识。
- 暴力:这就是典型的笨步骤转化为程序的体现
- 分治:是最常见的解决比较难问题的思路
- 特点:把一个问题分成相同的两个部分之后,发现每个小问题和原问题只是规模上的改变
- 贪心:这个方法使用的要求比较高。你使用的是一个结论,这是需要推理证明的。但仅仅的使用这个结论解决问题是很容易的。暴力+分治是解决问题所占的角度决定的。贪心是把问题本质的一种推理、证明作为前提保证的。暴力+分治可以快速的掌握,但是贪心不同的问题,他推理出的结论过程是千差万别的,必须具体问题具体分析。
- 动态规划:将问题的解法用方程来表示出来。