美文网首页
编程一小时第二日(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日):解决数学问题

    数学对编程来说很重要的,同时也可以用编程来解决数学问题。你想到什么数学问题?画多边形,画奇奇怪怪但非常美妙的各类线...

  • 数学的边界

    问数学的边界在哪里其实就是问数学可以解决哪些问题,数学不能解决哪些问题。 数学不能解决哪些问题? 数学能解决哪些问...

  • 高斯日记的C语言解法

    名:吕彬 学号:16130140354 【嵌牛导读】学习了C语言基础编程,可以用程序解决不少有趣的数学问题,大数学...

  • 用Swift的函数式编程解决硬币问题

    用Swift的函数式编程解决硬币问题 用Swift的函数式编程解决硬币问题

  • Thread-Per-Message模式:最简单实用的分工方法

    解决并发编程问题,首要问题也是解决宏观的分工问题。并发编程领域里,解决分工问题也有一系列的设计模式,比较常用的主要...

  • stl 算法自带总汇

    算法,问题之解法也。以有限的解决逻辑或数学上的问题,这一专门科目我们称为算法。大学信息相关教育里面,与编程最有直接...

  • 编程思维2-python学习31

    编程思维 学习编程的主要目的是要学会用编程能力帮自己解决实际问题。 连接编程知识和解决实际问题的桥梁就是“产品思维...

  • 04-08解决问题的能力培养

    解决问题的能力培养 数学能力或者说数学素养,最终是落在学生解决问题上。换言之,数学最终培养的是孩子解决问题的能力。...

  • 【第六天】Python的递归与库

    3.3递归 1.高斯求和与数学归纳法 求1到100的和,用编程方法解决: 正如程序所显示,循环是解决问题的一个自然...

  • SpringAOP学习中

    springAOP面向切面编程,非编程语言,是编程范式,只能解决特定问题,是OOP的补充而非替代。 初衷:解决代码...

网友评论

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

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