陳新龍
雞兔同籠出自《孫子算經(jīng)》:“今有雉兔同籠,上有三十五頭,下有九十四足,問(wèn)雉兔各幾何?”題目意思是:有若干只雞兔同在一個(gè)籠子里,從上面數(shù)有35個(gè)頭,從下面數(shù)有94只腳,求籠中各有多少只雞和兔。那么Scratch中我們應(yīng)該怎么編程呢?
雞兔同籠是中國(guó)數(shù)學(xué)最經(jīng)典的題目,直到現(xiàn)在,小學(xué)生也要遇到雞兔同籠問(wèn)題。今天就用三種不同的算法來(lái)解決雞兔同籠。
首先設(shè)置四個(gè)變量分別為總腳數(shù)、總頭數(shù)、兔數(shù)、雞數(shù)。
1. 最萬(wàn)能的方程法
設(shè)雞數(shù)為X只,則兔數(shù)有35-X只,2X+4(35-X)=94,解出X=23,則兔數(shù)=35-23=12只(如圖1)。
2. 抬腿法:總腳數(shù)94只,假設(shè)先命令籠子里的動(dòng)物全部抬起兩條腿,因?yàn)殡u是兩只腳的動(dòng)物,所以雞的腳都被抬起來(lái)了,相當(dāng)于這時(shí)候雞的腿沒(méi)有了,只剩下兔子剩下兩只腳站地上。94-35-35=24,剩下的都是兔子的腳數(shù),24/2=12得出兔數(shù),則雞數(shù)=總頭數(shù)-兔數(shù)=23(如圖2)。
公式:(總腳數(shù)-總頭數(shù)-總頭數(shù))/2=兔數(shù)
3. 砍腿法:砍掉雞的一只腳,砍掉兔子的兩只腳(相當(dāng)于砍掉動(dòng)物一半的腳),94/2=47,剩下47只腳,再減35,則雞又砍掉一只腳,兔子又砍掉一只腳,這時(shí)候雞已經(jīng)沒(méi)腳可以砍了,還剩下兔子的腳。47-35=12,則得出兔子一共12只。雞數(shù)等于35頭數(shù)減去兔數(shù),雞數(shù)=35-12=23只(如圖3)。
公式如下:兔數(shù)=總腳數(shù)/2-總頭數(shù)=94/2-35=12
雞數(shù)=總頭數(shù)-兔數(shù)=35-12=23
雞兔同籠是一個(gè)很經(jīng)典的題目,解題的算法也很多,本題的關(guān)鍵在于怎樣把數(shù)學(xué)的解題方法變成編程的算法寫(xiě)成代碼。比如解方程法就是將X從0一直試算到符合條件為止。這里我用了三種不同的方法,其實(shí)遠(yuǎn)不止這三種,大家課后可以找一下相關(guān)的資料然后用Scratch編新的算法。