数学对编程来说很重要的,同时也可以用编程来解决数学问题。你想到什么数学问题?画多边形,画奇奇怪怪但非常美妙的各类线条?是的,他们非常漂亮!可是那些画图形的操作尝试一下即可,今天我们将用scratch编程来解小学奥数“鸡兔同笼”问题。
我们先回顾下题目:
大约在1500年前 ,《孙子算经》中记载了这样一个有趣问题:
今有雉兔同笼,
上有三十五头,
下有九十四足,
问雉兔各几何?
这四句话的意思是:有若干只鸡和兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。问笼中各有几只鸡和兔?
01 古法——砍足法
孙子的解法:孙子提出了大胆的设想,他假设砍去每只鸡、每只兔一半的脚,则每只鸡就变成了“独脚鸡”,每只兔就变成了“双脚兔”。这样,“独脚鸡”和“双脚兔”的脚就由94只变成了47只;而每只“鸡”的头数与脚数之比变为1:1,每只“兔”的头数与脚数之比是1:2.由此可知,有一只“双脚兔”,脚的数量就会比头的数量多1。所以“独脚鸡”和“双脚兔”脚的数量与他们头的数量之差,就是兔子的只数。
翻译成算术方法就是:
兔数(94÷2)-35=12(只)
鸡数35-12=23 (只)
这一思路被称为“砍足法”,这种思维方法也叫化归法,化归法就是在解决问题时,先不对问题采取直接的分析,而是将题中的条件或问题进行变形,使之转化,直到最终把它归成某个已经解决的问题。
02 假设法
如果是适合小学三四年级的假设法,思路过程分析:
假设这35头全是鸡,那么,脚应是2×35=70(只),比实际少94-70=24(只)脚。
这是因为1只兔有4只脚,把它看成是2只脚的鸡了,每只兔少算了2只脚,共少算了24只脚,24里面有几个2,就是几只兔。
解:兔数 (94-2×35)÷(4-2)=24÷2=12(只)
鸡数35-12=23(只)
也可以假设35只全是兔,解答如下:
解:鸡数(4×35-94)÷(4-2)=46÷2=23(只)
兔数35-23=12(只)
03 列方程法
假设鸡有x只,兔有y只,列二元一次方程组
x + y=35
2x+4y=94
可以很快解出来x=23,y=12
04 画图和列表法
也就是穷举法(也称“枚举法”“列举法”)。从1开始穷举鸡的数量,那么兔的数量就是总的头数减去鸡的数量,计算并判断当前情况下脚的数量是否与之吻合,如果吻合则表示找到解。
用编程解决“鸡兔同笼”问题:
是的,正如你看到的,我已经给出了以上四种数学的解法,你能用编程(scratch)来编译这四种方法吗?或者你有自己的独特解法吗,你能完成几种解法?来吧,打开你的scratch……。我想告诉你的是,本题的用意是能用最后一种方法:穷举法(也称“枚举法”“列举法”),来解决“鸡兔同笼”问题。
网友评论