把问题切成小块来看
前面说过,算法是“解决问题的定好的顺序”。可面对大问题,那顺序怎么也想不出来。诀窍只有一个。一口吃不下,就切成同样形状的小块。
一口吃不下
让你把整间屋子收拾了,
就发懵。
从哪儿下手,
顺序想不出来。
大问题本来就这样。
当成一整块看,
太大了,一口吃不下。
点一下大问题这块。它会裂成小块。(收拾屋子 → 书桌 · 床 · 地板 · 书架)
整间屋子看着没头绪,
切成
书桌、床、地板、书架,
忽然就像办得到了。
解决大问题的第一步,
就是这个。
切小。
同样的形状,更小的问题
仔细看切下来的小块,
有件有意思的事。
小块说到底也是“收拾”。
收拾屋子
只是缩成了
收拾书桌。
小块和原来的问题,
同样的形状,只是更小。
点一块往里看看。里头也还是同样形状的更小问题。(收拾书桌也 = 收拾)
这为什么好?
只要有解大问题的脑子,
同一个脑子也能解小块。
不用学新方法。
形状一样,
把用过的方法照搬,
缩小着用就行。
给小块排顺序
光切开还没完。
小块也有顺序。
地上东西摊了一地,
却先扫地,
转眼又乱了。
先收书桌、床上,
最后再扫地,
才是对的顺序。
点小块,按处理顺序排好。先上面(书桌·床·书架),地板放最后就对了。
顺序排对了,
小块之间就不打架。
前一块弄乱的,
后一块再去收拾,
这种事没了。
跟第一讲看到的一样。
同样的小块,
顺序不同,结果就不同。
把小块的答案合起来
小块一个个全解完了。
书桌、床、地板,
都干净了。
可是等等,
只解了小块,
屋子不是还没完吗?
不是。
小块全解完,
它们合起来,屋子就干净了。
依次点已解的小块,合起来。小块答案全凑齐了,那就是大问题的答案(屋子干净了)。
所以合起来,
不是白来的。
把小块答案凑齐,
接成一个,
也实实在在是一步。
切开、按顺序解、合起来。
这三拍都对上,
大问题才真正解开。
小结:切开、顺序、合起来
面对大问题发懵时,
想起这四拍。
第一,切成同样形状的小块。
第二,明白小块是同样的问题。
第三,排好对的顺序。
第四,把小块答案合起来。
这就是计算思维的起点。
依次点这四拍,把要点理一遍。切开 → 同样形状 → 顺序 → 合起来。对付大问题,一张就够。
现在再遇上什么大问题,
都不用怕了。
一口吃不下,
切开就是。
不过有一样,
要是小块有好几个,
先做哪个,
顺序就真的要紧了,对吧?
下次我们来碰碰那个排队,排序。