○李 靜
“雞兔同籠”最早記錄于我國(guó)的古書(shū)《孫子算經(jīng)》之中。此問(wèn)題在多個(gè)版本教材中都有涉及。教材注重引導(dǎo)學(xué)生用猜測(cè)、列表枚舉、假設(shè)法(算術(shù)解法)等方法解決問(wèn)題(部分教材呈現(xiàn)方程解法),體現(xiàn)了解決問(wèn)題方法的多樣化。
之前學(xué)生已有用猜測(cè)、列表枚舉解決問(wèn)題的經(jīng)驗(yàn),因此教學(xué)時(shí),在簡(jiǎn)單的猜測(cè)和列表后,教師都要花大量的精力用圖形、動(dòng)畫(huà)等手段教學(xué)假設(shè)法。假設(shè)籠中全是雞,根據(jù)條件推理計(jì)算出有幾只雞、幾只兔。但是,為什么要假設(shè)全是雞呢?學(xué)生往往不去想或想不明白這一問(wèn)題,而是被動(dòng)地照著去假設(shè)。
波利亞在《怎樣解題》中提出:“教師應(yīng)當(dāng)把自己放在學(xué)生的位置上,了解學(xué)生是怎么想的,然后順勢(shì)提出一個(gè)問(wèn)題或建議,而這正是學(xué)生自己原本應(yīng)該想到的?!惫P者嘗試引導(dǎo)學(xué)生最大限度地參與問(wèn)題解決的過(guò)程,建立各種解法的聯(lián)系,讓他們順勢(shì)想到假設(shè)法。
引導(dǎo)學(xué)生借助畫(huà)圖、符號(hào)等手段分析數(shù)量關(guān)系,根據(jù)頭的數(shù)量和隱含的條件猜測(cè)一組數(shù)據(jù),嘗試求解問(wèn)題。
師:可以從8 個(gè)頭的條件出發(fā),假設(shè)一組數(shù)據(jù),看能否滿足26 只腳的條件。
生:假設(shè)有4 只雞、4 只兔,共有4×2+4×4=24(只)腳。
師:你可以畫(huà)圖表示一下剛剛的假設(shè)嗎?
師:少了2 只腳,沒(méi)有得到正確結(jié)果,你能調(diào)整一下找到正確答案嗎?
生:少了26-24=2(只)腳。說(shuō)明兔子實(shí)際的數(shù)量比假設(shè)的要多。因?yàn)槊恐煌米颖让恐浑u多2 只腳(隱含條件),2÷2=1(只),再調(diào)整兔子和雞的數(shù)量,加1 只兔,4+1=5(只)兔,減少1 只雞,4-1=3(只)雞。
師:怎樣畫(huà)圖表示剛剛的調(diào)整過(guò)程?
師:還可以怎樣假設(shè)?怎樣調(diào)整?你能邊畫(huà)圖邊說(shuō)明嗎?
教師引導(dǎo)學(xué)生將語(yǔ)言表述、畫(huà)圖及符號(hào)表示(列算式)有機(jī)結(jié)合起來(lái)。在學(xué)生想不清楚的地方,教師適時(shí)提問(wèn)或引導(dǎo)其他學(xué)生質(zhì)疑、補(bǔ)充。如:你能解出這道題的一部分嗎?題目中還有哪些隱含的有用數(shù)據(jù)?哪些隱含信息可以幫助你調(diào)整求出未知量?學(xué)生由此感悟到猜測(cè)任意一組數(shù)據(jù)都能根據(jù)隱含條件求解問(wèn)題,溝通了猜測(cè)法與假設(shè)法之間的聯(lián)系。
承接“先猜測(cè)再調(diào)整”的思路,教師提出問(wèn)題:“你能將所有猜測(cè)方案都列舉出來(lái)嗎?”這時(shí),列表的目的就不只是找到答案,而是整理解決問(wèn)題的思路。通過(guò)調(diào)動(dòng)學(xué)生之前解決問(wèn)題的經(jīng)驗(yàn),便可以找到解題的“通解通法”。
頭雞8 7…………兔0 1腳總腳數(shù):2×8=16腳數(shù)差:26-16=10,少了10 只腳??偰_數(shù):2×7+4×1=18腳數(shù)差:26-18=8,少了8 只腳。……調(diào)整一只兔比一只雞多4-2=2(只)腳。增加兔:10÷2=5兔:0+5=5減少雞:5雞:8-5=3一只兔比一只雞多4-2=2(只)腳。增加兔:8÷2=4兔:1+4=5減少雞:4雞:7-4=3……
綜上,列表中的每一種猜測(cè)都可以調(diào)整得出正確結(jié)果,教材給出的“假設(shè)法”不過(guò)是假設(shè)極端值(假設(shè)全是雞或假設(shè)全是兔)的一種情況而已。為什么要假設(shè)極端值呢?因?yàn)檫@樣計(jì)算腿數(shù)簡(jiǎn)單,調(diào)整過(guò)程也簡(jiǎn)單。由此,學(xué)生便找到了解決“雞兔同籠”問(wèn)題的通法,并在通法中分離出簡(jiǎn)便方法——假設(shè)法,學(xué)生心中的疑問(wèn)“為什么假設(shè)全是雞”便解開(kāi)了。教材中給出的三種方法,即猜測(cè)法、列表法、假設(shè)法也都統(tǒng)一到一個(gè)解題思路之中了。
以上都是從滿足8 個(gè)頭的條件進(jìn)行假設(shè)的(頭的數(shù)量少,方便調(diào)整)。教師還可以引導(dǎo)學(xué)生變換角度繼續(xù)思考:“我們還能從其他條件出發(fā)進(jìn)行假設(shè)嗎?”當(dāng)然,我們也可以從腳的只數(shù)出發(fā)進(jìn)行假設(shè):假設(shè)26 只腳全是雞的腳,然后調(diào)整。不過(guò)腳的數(shù)量復(fù)雜,調(diào)整起來(lái)也更麻煩些。
“雞兔同籠”問(wèn)題還有許多解法。如“抬腿法”,解題思路與記載在《孫子算經(jīng)》中的解題方法“半足法”相同:上置頭,下置足,半其足,以頭除足,以足除頭即得(腳數(shù)除以2,結(jié)果減頭數(shù)得兔,再用總頭數(shù)減兔,得雞)。除了《孫子算經(jīng)》,中國(guó)古代數(shù)學(xué)書(shū)籍《算法統(tǒng)宗》中也記載了一道“雞兔同籠”的問(wèn)題,還有一個(gè)同類(lèi)型的“米麥問(wèn)題”?!端惴ńy(tǒng)宗》采用的解題方法是與“半足法”不同的“倍頭法”和“四頭法”,即:倍頭減足折半是兔(頭數(shù)乘2,足數(shù)減掉乘積后除以2 得兔);四頭減足折半是雞(4 乘頭數(shù),減掉足數(shù)除以2 得雞)。
整理算法后我們發(fā)現(xiàn),“半足法”是從滿足腳的條件出發(fā)的假設(shè)法,而“倍頭法”“四頭法”則是從滿足頭的條件出發(fā)的假設(shè)法。
不管是古書(shū)中的“半足法”“倍頭法”,還是教材中的“假設(shè)法”,都只呈現(xiàn)了解決問(wèn)題的步驟。任何程序化的算法背后都有創(chuàng)造算法的思路。教學(xué)中,教師應(yīng)引導(dǎo)學(xué)生充分經(jīng)歷算法背后思路的思考過(guò)程,溝通猜測(cè)法、列表法與假設(shè)法之間的關(guān)系,消除心中的疑惑。
“半足法”和“倍頭法”用解二元一次方程的“消元法”理解更具有去情境化的優(yōu)勢(shì)。以“半足法”為例。
假設(shè)有x只雞,y只兔:
方程法解決“雞兔同籠”問(wèn)題具有去情境化、結(jié)構(gòu)化的特點(diǎn)。學(xué)習(xí)方程之后,可以讓學(xué)生用方程方法再來(lái)解決“雞兔同籠”問(wèn)題,比較代數(shù)思維和算術(shù)思維的不同,感受不同解法背后的相通之處。