陈新龙
鸡兔同笼出自《孙子算经》:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”题目意思是:有若干只鸡兔同在一个笼子里,从上面数有35个头,从下面数有94只脚,求笼中各有多少只鸡和兔。那么Scratch中我们应该怎么编程呢?
鸡兔同笼是中国数学最经典的题目,直到现在,小学生也要遇到鸡兔同笼问题。今天就用三种不同的算法来解决鸡兔同笼。
首先设置四个变量分别为总脚数、总头数、兔数、鸡数。
1. 最万能的方程法
设鸡数为X只,则兔数有35-X只,2X+4(35-X)=94,解出X=23,则兔数=35-23=12只(如圖1)。
2. 抬腿法:总脚数94只,假设先命令笼子里的动物全部抬起两条腿,因为鸡是两只脚的动物,所以鸡的脚都被抬起来了,相当于这时候鸡的腿没有了,只剩下兔子剩下两只脚站地上。94-35-35=24,剩下的都是兔子的脚数,24/2=12得出兔数,则鸡数=总头数-兔数=23(如图2)。
公式:(总脚数-总头数-总头数)/2=兔数
3. 砍腿法:砍掉鸡的一只脚,砍掉兔子的两只脚(相当于砍掉动物一半的脚),94/2=47,剩下47只脚,再减35,则鸡又砍掉一只脚,兔子又砍掉一只脚,这时候鸡已经没脚可以砍了,还剩下兔子的脚。47-35=12,则得出兔子一共12只。鸡数等于35头数减去兔数,鸡数=35-12=23只(如图3)。
公式如下:兔数=总脚数/2-总头数=94/2-35=12
鸡数=总头数-兔数=35-12=23
鸡兔同笼是一个很经典的题目,解题的算法也很多,本题的关键在于怎样把数学的解题方法变成编程的算法写成代码。比如解方程法就是将X从0一直试算到符合条件为止。这里我用了三种不同的方法,其实远不止这三种,大家课后可以找一下相关的资料然后用Scratch编新的算法。