分享

经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?

 当以读书通世事 2018-12-01

大约在1500年前,我们的老祖宗写了一本数学奇书《孙子算经》(这个孙子可不是是那个提出“知己知彼”的军事家孙子),下卷第31题记载了一个很好玩的数学问题:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”

这道题就是后世“鸡兔同笼”的始祖,如今已被义务教育课程标准实验教科书人教版数学五年级上册选为补充教材并且在部分五~六年级的课外习题所用。


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?



关于这道题的解法有很多种,这一次我们试着用编程软件Scratch求出了答案,并录制了完整的解题过程,希望帮助大家更好地理解如何运用编程解决简单、有趣的数学问题。

不过在开始之前,需要先明白一个问题:我们为什么要学数学,它和编程有何关系?

中科院院士、数学教授李大潜给出了答案:数学能够提高我们的素质和能力,这些素质和能力包括:严密的逻辑思维能力、高度的抽象思维能力、自觉形成数量观念、让我们变得更细心。


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?


李大潜教授

数学和编程关系紧密,具备数学+编程的人优势会更大,这和它们之间的联系密切相关。


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?

数学和编程的关系

经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?



1. 编程所需要的很多能力和数学是相通的。比如逻辑思维、模式识别等。现在机器学习用到的算法,其本质还是数学模型计算问题。

2. 编程能够帮助孩子更好地理解数学抽象概念。孩子们可以通过编程将抽象的数学概念转化为看得见的、会动的图像。

例如最常用的函数,书本上的概念理解起来很抽象,通过编程就可以在计算机上展示出来。

Sin和Cos在三角形上的运用:

经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?


3. 编程能够强化孩子的数学能力。如果孩子想用代码建造飞机,那就要用到各种各样的数学知识,并且还要调用抽象思维的能力。

想清楚了这两个问题哦,我们再看编程解决数学问题的过程收获会更多。

开始,需要搞清楚编程解决数学问题的逻辑:我们要解出的数学答案是什么(求兔子和鸡的数量)——梳理出这个问题的逻辑——确定用怎样的公式计算——在草稿纸上画出流程图——将这个顺序转化为代码语言——输入计算机得出结果。

下面一步步细分

经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?

第一步:添加角色

左下角的角色区添加角色,分别是公鸡、兔子、笼子各一个:

经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?

第二步:设置逻辑运算

1. 笼子角色的脚本要根据已知条件算出结果,并在界面显示出结果(白框里的文字),我们输入题目中已知条件:



经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?


我们要求鸡和兔子的数目,就是要解出两个未知数,把它转化为代码语言,这就需要创建两个变量来代表这两个未知数(兔子和鸡)。

现在根据已知条件输入兔+鸡=35,兔x4+鸡x2=94,注意左边的绿色框,里面包含了很多逻辑关系:“且”、“或”等等。孩子在这一步要思考:这两个式子是缺一不可还是满足一个就行呢?这就是对孩子逻辑思维最好的训练。


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?


接着输入变量(发散下思维:分析一个问题时,教会孩子找出它的变量,问题就会好解决很多):


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?


完整代码如下:


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?


鸡和兔要执行的任务是:当它们接受到“计算鸡兔多少只”这个指令时,就要分别“喊出”结果,兔子的代码是这样的:


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?


鸡的代码是这样的:


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?


最后的结果是:


经典数学问题“鸡兔同笼”居然被编程给巧妙解决了?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多