知识卡片

迈出第一步的三种策略

专业/工作 · 1289.d

内容

面对一个不知从何下手的问题,有三种通用策略可以帮助”迈出第一步”:反向工作(从期望的输出倒推回输入,折纸鸟的算法就是靠拆开一只已经折好的鸟摸索出来的)、化归到相关问题(先解决一个更简单或已解决过的类似问题,再把思路迁移过来,比如程序开发通常不是解一个具体实例,而是要找出对任意输入都成立的通用算法)、逐步精化(把大问题拆成若干子问题,子问题再继续拆,直到每个子问题都足够简单为止,这是一种自顶向下的方法,与从具体细节出发逐步归纳的自底向上方法相对,两者在实践中常常互补)。发散:这三种策略的共同点是都在想办法降低问题的”抓手难度”——反向工作降低的是方向不确定性,化归降低的是问题本身的复杂度,逐步精化则是把一次性搞定的高认知负荷拆成一连串可管理的小任务,三者可以叠加使用而非互斥选择。

参考来源

《计算机科学概论》第5章《算法》