专栏名称: Howie和小能熊
小能熊是终生学习的小能熊,是自我管理的小能熊。 小能熊专注于分享自我学习方法,分享时间管理、知识管理等自我管理方面的经验和思考。 一句话,小能熊,来自学习者,服务学习者。 热爱学习、希望提升自我的你,希望小能熊能成为你的好朋友。
目录
相关文章推荐
白鲸出海  ·  国内ToB、海外ToC双线告捷,美图净利润再 ... ·  20 小时前  
阿里开发者  ·  如何解决隐式内存占用难题? ·  昨天  
阿里开发者  ·  如何监控vLLM等大模型推理性能? ·  昨天  
白鲸出海  ·  ChatGPT移动端月流水达1亿美元,谷歌G ... ·  昨天  
51好读  ›  专栏  ›  Howie和小能熊

解题四步法

Howie和小能熊  · 公众号  ·  · 2024-04-10 14:49

正文

解决问题,是否存在一个元方法,一个解决一切问题的通用方法?

我准备从两个场景分别论述,先谈学习场景的解题,通常是确定问题;再谈人生场景的解题,通常是非确定问题。

波利亚其人其事

解题的故事,要从一个人,一本书说起。

这个人是波利亚 (George Pólya),匈牙利裔美国数学家。可能很多人不知道他,但是,他的学生冯·诺依曼可是大名鼎鼎。而且,他本人在概率论、组合数学和数论上的贡献也是全球闻名的。但是,他不仅仅是个数学家,更是一个数学教育家:他在数学教育领域有一个开创性工作:他的著作《怎样解题》(How to solve it)。

这是一本出版于1945年的小册子,即使在 80 年后的今天,这本书仍然不断再版,被翻译为上百种语言,在全球范围内持续畅销。这本书的初版封面上写着一句话:“A system of thinking which can help you solve any problem”(一个帮你解答一切难题的思考系统)。

是的,波利亚的这本书背后有一个大观念(big idea):学生应该 通过解决问题来学习数学 ,而非记忆公式定理和做题套路。而且,解决问题这件事,有一个底层的、共通的方法,我称之为“波利亚解题四步法”。

波利亚解题四步法

想象一下。

我们从小学一年级到大学毕业彻底离开学校,上学十几年,做题无数,我们解过多少题目?古人说学海无涯,现代学生则是题海无涯,面对无涯之题海,目前很多人采取的应对方法竟然是“题海战术”:大量做题,不分场合不分地点不分时间,一直做题,疯狂做题。我回老家时发现,现在的县中孩子竟然在家庭聚会时把题目带到餐馆里面去做,而且是普遍现象。精神可嘉之余,我不禁要问:是否有必要这样?

学生就得做题,小树也做题。关于做题,我经常和小树说:verily i say unto you,归根结底,你只需要掌握一种做题的方法。成千上万的题目,归根结底只有一种方法。你只要掌握这一个方法,所有的题都会做!你在做任何一个题目,都是练习这个方法的机会。激动不激动?

小树说,激动啊。你赶紧跟我讲讲吧。

其实,我也想对父母说,孩子的一切学习,尤其是数理化学习,有一个科学方法,这是解决一切难题的元方法。而且,这个方法所有孩子都可以学会,有十几年时间来学习、掌握和内化这一个方法,傻子都能学会。这样一想,是不是完全不需要焦虑?在这种情况下,焦虑和内卷是不是不但必要,而且显得愚蠢?

波利亚的解题四步法非常简单:第一步,真正理解问题;第二步,形成解题思路;第三步,执行解题思路;第四步,检查和回顾。

就是这么简单。下面我们逐步论述。

1/4 真正理解问题

显而易见,解题的第一步是理解问题。我和小树讨论题目时,我的固定话术就是,首先,let's understand the problem。

这个题目求解的是什么?已知的是什么?题目中有什么条件和假设?

有一种说法:孩子的数学题不会做,原因在于语文不好。这一观点说的就是对题目的理解问题。真正理解题目并不容易,这一步的本质是对题目信息的 无损压缩 :这个题目几百字,分成几句话,其中有几条信息,哪些是无效信息,实质有效的信息有几条,每条信息分别是什么,各条信息之间是什么关系……

如何判断自己是否 真正 理解了一个问题?我的判断标准是:用自己的话说出来。把书本合上,能清楚重述这个题目,已知什么,未知的什么,求解什么。

这一步并不容易,尤其是对于阅读量不足、常年缺乏课外阅读的孩子。短期应对方法是反复阅读题目,反复练习重述;长期应对的方法只能是补齐阅读短板,提高学习闭环中理解环节的底层能力。

在理解题目这一步,如果能画图,就一定要画图。文本是线性的简单的,思路是网状的复杂的,而成体系的有结构的信息组织方式能够化繁杂为清晰,化复杂为简单。可以用表格、图表等方式,从线性文本中提炼出信息结构,这对理解题目很有帮助。这一步操作的本质是要针对这个题目建立 心理模型 ,形成思考问题的基本框架。

我在 logseq 里面建立了解题四步法的模板,解题时直接调用。其中,第一步就是这样的,完成一项打勾一项。

2/4 形成解题思路

解题的下一步是形成 自己的 解题思路。我对小树的固定话术是,let's make a plan。

毫无疑问,解决问题的方法有很多种。我们如何知道采用什么方法呢?很多人就卡死在这一步了,觉得没有头绪,抓耳挠腮也没有思路。

这一步的 本质是分类问题 。题目千千万,但是分门别类之后,很多题目都可以对应到一个题目类型。就好像地球上生物个体以千亿计量,光地球上生活过的人类数量就超过 1000 亿,但是,用生物学的门纲目科属种一份类,思路就清晰多了。

以小学生的数学题目为例,整个小学数学归根结底就那几类问题:鸡兔同笼、排队问题、植树问题、盈亏问题、一笔画问题……成年人解决问题也得先分类。

同理,程序员为什么要做算法题?因为得积累编程时解决问题的思路。LeetCode 题库中的题目总数大约有 2700 道,但是,根据算法和数据结构类型进行分类,不过只有十几种类型:数组和字符串、链表、树和图、堆栈和队列、排序和搜索、数学和几何问题、位运算、回溯算法、贪心算法……

这里有一个 关键假设:解题思路/算法是不是一种知识? 如果是的话,就需要平时通过练习来积累?如果不是,那就继续抓耳挠腮,等待“灵感”吧。

现实中,除了小学生的数学问题,程序员的算法问题,数独(sudoku) 和魔方等智力游戏,解题的关键也在于其算法。数独作为一种问题,题目的理解非常容易,只有一句话(从1到9这9个数字在行列宫中不重复排列),但是,解题方法要么你自己摸索发现(简单和中等难度可以,例如行列排除),要么学习理解前人总结出的方法(高难度数独的算法几乎不能靠自己从头发现,例如swordfish算法)。如果你不掌握这种解法,你一定会在这一步卡住。

所以,提出解题思路,是一种模式识别,基于自己过去的解题经验,基于自己已经积累的算法知识,识别出恰当的解题方案、策略、思路。

怎么办?做题+总结。只有通过解决很多很多的问题,你才能培养出选择合适解题策略的能力。随着练习增加,你会发现选择合适策略越来越容易。

对算法知识的总结也很重要,这就是为何解题四步法的第四步除了检查,还包括回顾。

一旦形成了一个自己的解题方法,你一定要用 思维链(chain of thoughts) 的形式展示出来,本质上也是对解题思路的费曼,固定句式就是:let’s think step by step。

同样,第二步在解题四步法模板中如下:

3/4 执行解题思路

第三步是最容易的一步:题目也理解了,初步思路也有了,那就执行这个方案,计算呗。我对小树的固定句式是:let's carry out the plan。

执行这一步,就类似围棋中的收官,国际象棋中的终局,数独游戏中最后的扫尾阶段,我称之为“猛虎下山”,酣畅淋漓,你就是一台毫无感情的解题机器。

这是一个熟练工种,关键在于平时练习。阅读的关键是把自己练习成一个“熟练阅读者”;学习的关键是把自己练习成一个科学学习的“熟练学习者”,而执行解题思路这件事上,也得靠练习让自己成长为一个熟练工。

你要做的就是,根据前面解题思维链中的步骤,按步骤执行,每一步的思考和计算都是清晰且准确的,对于初学者尤其要注意清楚写出每一步解题过程,体现出“训练有素”。

同样,第三步在解题四步法模板中如下:

4/4 检查与回顾

解题的第四步是检查和回顾。我和小树的固定句式是:let's look back。

得出一个答案,并不是解题的结束。解题四步法本质上是一个 迭代式闭环(iterative loop) 。if 解题失败,无法得出答案,then 回到第一步;if 解题成功,得出一个答案,then 检查答案;if 检查无误,then 回顾整个解题过程,总结提炼出一些经验教训。

学海无涯,不要用有涯的生命去追求无涯的死的知识,画自己的个人知识树;题海无涯,不要用有涯的生命去简单重复刷题,而是让做题变成一个主动思考,刻意练习解题四步法的机会。







请到「今天看啥」查看全文