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