人工智能背後的學習心法——分治算法

計算機科學中有一個經典的“分治算法”,蘊藏着學習的大智慧。

通俗的解釋是:把大問題拆解成小問題,分而治之,各個擊破。

舉一個例子:假設有16個硬幣,其中一個是假幣,比真幣輕。如何找出假幣?

你可以兩兩比較,比如在天平上分別測量1和2,3和4,5和6……你 最多通過8次比較,就能找到假幣。

有沒有更簡單的方法?

你可以把16個硬幣分成兩組,一組8個,一起比較。哪一邊更輕,就包含假幣。然後把輕的那組再一分爲二,4個和4個比較……通過4次就可以找到假幣。

還有沒有更快的方法?

你可以把硬幣分成5、5、6三組。5和5稱量第一次。

如果平衡,說明硬幣在6箇中。然後把6個硬幣分成2、2、2三組。同樣的方式,兩組稱量,如果平衡,就在第三組中。如果哪一組輕,就在其中。

如果不平衡,輕的包含假幣。同樣分成三組2、2、1。2和2稱量。如果不平衡,另外1個就是假幣;如果哪一組輕,假幣就在其中。

通過不斷分類討論,你最多隻需要三次稱量,就一定可以找到假幣。

數據越多,情況越多,分類討論的方式越能夠大幅縮小試錯數量,提高效率。

平時做題時也是如此,那些複雜的數學、物理題目,難在哪裡?就是情況複雜多變。你如果一個一個試錯,根本沒有時間。會做題的學霸,懂得分類討論的方法,通過分門別類,快速縮小解題範圍,快速找到求解目標。

複雜題目都是由簡單題構成的,學習最重要的環節,就是拆解答案和解題流程,要能夠精準鎖定知識點。

所以我常說:要把大問題拆解成小問題,把複雜問題拆解爲簡單問題,把多步任務拆解爲單步任務,化大爲小,化整爲零,分而治之,各個擊破。

當你學會了拆解之後,你就可以聚焦每一個小問題,定位自己缺漏的知識點。這時候,這道題的答案其實已經不重要了,你現在最應該做的是,回到課本,把那個不會的知識點學會。當你把知識漏洞一個一個都補上之後,不但這道錯題學會了,而且碰到任何新題和變化,也可能做出來。

題目都是知識點的拼接和組合。題型是皮,知識是骨。抓住骨幹,事半功倍。

學習不講方法,就像驢拉磨一樣,重複一萬遍,也是在低水平上不斷繞圈。

分類討論,步步爲營。

這是做題心法,也是學習秘籍。

—— 相關閱讀 ——