计算机兔同笼的方法,“鸡兔同笼”问题,4种不同的、有趣的解法,简单易懂...

博客探讨了经典的数学问题“鸡兔同笼”的不同解法,包括《孙子算经》中的算法和通过让动物单脚站立的趣味想象解法。文章指出,虽然简单的尝试法看似机械,但在面对大量数据时,计算机能快速解决此类问题。同时,文章鼓励中学生通过理解问题本质,发展通用算法来提升数学能力。
摘要由CSDN通过智能技术生成

相信不少人都听说过著名的“鸡兔同笼”问题,对无忧无虑的小学生来说,心理阴影不至于,但绝对是个巨大的挑战。问题是这样的:在一个笼子里,有鸡和兔子两种动物,两种动物脑袋共35个,脚一共94只,那么鸡和兔子分别各多少只呢?

当然啦,题目中的鸡和兔子都是正常的,没有残疾,也没有三头六臂。基于此,老老实实地考虑怎么才能算出答案呢?

《孙子算经》的解法

事实上,这个问题最早出现于《孙子算经》,并给出了一个解法:

所有动物的脚数除以2,得47;每只鸡有一对脚,兔子有两对脚。假设笼子里全部是鸡的话,脑袋35个,脚也应该是35对,而事实上有47对脚。如果把一只鸡换成一只兔子的话,47-35=12,说明需要12只鸡被替换为兔子,于是得到兔子的数目。鸡的数目自然就是35-12=23只了。对于上面的解法,理解起来也并不那么轻松,尤其对于小学生来说。我估计很多人在看完这个答案的时候,心里暗暗地佩服:这个解法真“孙子”!

553f2f7a3dd8580afb56d994458fde76.png

有趣的算法

如果说一声令下,让每只鸡都金鸡独立,每只兔子也双脚站立卖萌。此时着地的脚一共是47只,而脑袋是35个;其中一只鸡头对应一个脑袋,一个兔头对应两只脚;那么脚的数量减去头的数量就是兔子的个数啦,兔子数目知道了,鸡的数量自然也就知道了;因此兔子12只,鸡23只。

有人质疑“一声令下”,说假如能让鸡单脚着地的话,为什么不直接让鸡报数?好啦,做人要厚道,这个问题就留给我们敬爱的、伟大的生物学家吧!事情不能做绝,也得给别人一碗饭吃。

c9e8a3e4f7aa986b3959f55bd357ba6e.png

然而,无论是《孙子算经》的算法,还是能和小动物沟通,都是结合了这个具体的背景,给出了具体的解法。假如说笼子里放几只蜈蚣的话,还像上面的算法那么算的话,估计谁算谁骂街。数学的使命,就是抛开具体事物,只研究其数量关系,找到通用的、一般的算法。

机械地尝试

如果我把题目改一下:在一个笼子里,关着鸡和兔子,两种动物的的脑袋一共是2个,脚一共是6个,问鸡和兔子分别有几只?

我相信很多人一瞬间,就得到答案啦。那么如果改成一共3个头,8只脚呢?应该也会有比较多的小学生能得到答案。而这个思维过程其实很简单:尝试!如果笼子里小动物的数量少,试一两次就得到答案啦;如果数量大了,懒惰的我们就忽略了这种算法。

5eeb90c4e81fb51ad8b3185193208d1e.png

仍然考虑原问题中的笼子,通过尝试的方法,毫无疑问是要尝试更多次的:

假如是1只鸡,34只兔子,那么脚一共是1×2+34×4=138>94,不对;假如是2只鸡,33只兔子,那么脚一共是2×2+33×4=136>94,不对;假如是3只鸡,32只兔子,那么脚一共是3×2+32×4=134>94,不对;……这样一直试到23只鸡,12只兔子,问题得到解决啦;当然,如果从假设1只兔子开始,尝试的次数要少得多。如果说,在上面尝试的过程中,敏锐法察觉到脚的数量是在递减,你可能就会去跳跃的尝试,比如尝试完5只鸡,直接尝试10只鸡……,如此会更快地获得答案。

有些人会不屑,这种算法也叫算法么,我都没抖抖机灵。没错儿,这种算法比上面的两种算法更具一般性,无论笼子里关的是什么小动物都可以这样计算;当然了,这种方法很机械,而且随着笼子里动物数量增多,计算量也在迅速增大。

如果原问题中的笼子有67个,把这67个笼子中的鸡和兔子都放到一个大笼子里,就得到:鸡和兔子的脑袋一共2345个,脚6298只,那么鸡和兔子分别有多少只呢?

0db9b6e25b1b9a7e68be553dc0d04074.png

此时“尝试”的算法依然奏效,但是计算量就明显增加。面对机械的计算,有没有什么好办法呢?有!善良实在的计算机就登场了,它可以毫无怨言地按照“尝试”的算法,快速计算出鸡和兔子的数量。当然这个机械式的“尝试”算法可以做改进,这是另外一个话题。

39f5c001a4f6a9360c9df45d81b4e1b9.png

作为中学生,想要学好数学,到底应该如何做?

购买专栏

特别声明:以上文章内容仅代表作者本人观点,不代表新浪网观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与新浪网联系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值