美文网首页
编程一小时第二日(3月10日):解决数学问题

编程一小时第二日(3月10日):解决数学问题

作者: QQ和微信 | 来源:发表于2020-03-07 19:51 被阅读0次

    数学对编程来说很重要的,同时也可以用编程来解决数学问题。你想到什么数学问题?画多边形,画奇奇怪怪但非常美妙的各类线条?是的,他们非常漂亮!可是那些画图形的操作尝试一下即可,今天我们将用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……。我想告诉你的是,本题的用意是能用最后一种方法:穷举法(也称“枚举法”“列举法”),来解决“鸡兔同笼”问题。

    相关文章

      网友评论

          本文标题:编程一小时第二日(3月10日):解决数学问题

          本文链接:https://www.haomeiwen.com/subject/sfphdhtx.html