數學逆轉程式與方法

當代著名數學家、教育學家波利亞在論述解題策略時,曾強調“反面思考”的作用,所謂“反面思考”,就是通過考察事物的對立面來探索問題的解的一種思考方法。由於事物的對立面可以從不同的角度來選取,這就使得反面思考又有不同的思考方式,而逆轉程式就是這些思考方式中的一種,如果把原問題看成是已知a來探求b,那么,逆轉程式就是把原問題更改為已知b來探求a,即從相反方向(交換起點與終點)這個對立面來探求問題的解答。下面舉幾個例子,說明逆轉程式的套用。這些例子都是生動有趣的,但用常規的方法卻不易求解,從而有力地說明了逆轉程式在解決有關問題(特別是數學競賽題)中的優越性。例:給你四段鏈條,每一段上有三節封閉(可開可合)的環。現在要你打開一些環,把十二節環連線成一個首尾相接的圓圈(圖略)。每打開一環得兩分,接上一環得3分,要以得分不超過15分完成本題。有人對解這個題的各種嘗試過程作了非常詳細的討論,並介紹了在不斷的“試錯”和“反思”中尋求解題途徑的思想方法,這無疑是一種有效的解題方式。
但是,本題若採用逆轉程式的策略,其解答則顯而易見。解我們從相反的方向來考察,即怎樣將一個12環首尾相接的圈打開儘量少的環,使其分成環數相等的四部分?(圖略)我們只須打開標有“×”的三個環即可,由於“合”與“分”是對立的統一,一種“分”的方式即可產生一種“合”的方法。這樣,可知原題應打開某段鏈條的全部三個環,此時,打開三環得6分,而且該三環將其它三段鏈條接起來得9分,共得6+9=15分,符合題目要求。又例:由8個相同的小立方體構成一個2×2×2的大立方體。
今沿小立方體的表面將大立方體分成大小、形狀完全相同的兩個幾何體,問有多少不同的分法?解本題是一個有趣的組合問題,如果將思維限制在考察怎樣從大立方體中分割出兩個全等的幾何體則是難以考慮全面的:表面似乎只有一種分法,即將其分為兩個1×2×2的長方體。除此之外,再不知如何下手。現在,我們從相反的方向來考慮:哪些全等的兩個幾何體(由4個小立方體構成)可以“合”成一個大立方體?即從部分“合成”整體這一方向來考察事物的可能性。由於“部分”的形狀比較容易分析,從而問題的解也就趨於明朗。考察由4個小立方體合在一起構成的圖形的所有可能形狀,其中注意它們的最大棱長不超過2。首先,由兩個正方體拼起來只有一種方式,再加上一個正方體,雖有兩種情形,但其中一種含有大於2的棱長,從而也只有一種可能。再在三個小正方體上添加一個小正方體這隻有4種允許的本質上不同的拼合方式(本質上不同是指經過剛體運動後它們不能重合)。意外的是,這四種情形中的任何一種,其兩個完全相同的幾何體都能拼成2×2×2的立方體,故我們的答數為4。