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

相信不少人都听说过著名的“鸡兔同笼”问题,对无忧无虑的小学生来说,心理阴影不至于,但绝对是个巨大的挑战。问题是这样的:在一个笼子里,有鸡和兔子两种动物,两种动物脑袋共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
    评论
### 回答1: 《计算机网络-自顶向下方法》是一本经典的计算机网络教材。该教材采用自顶向下的方法,从应用层开始逐层深入,涵盖了计算机网络的所有核心概念和技术。全书分为两部分,第一部分介绍了计算机网络的基础知识和技术,包括网络体系结构、传输层、网络层、链路层以及物理层等;第二部分则讲解了高级主题,如无线和移动网络、网络安全、多媒体网络等。 该教材的独特之处在于采用了自顶向下的学习方法,即首先讲解应用层的协议,然后逐层深入,最后讲解物理层。这样的学习方法让学生能够了解计算机网络是如何被构建的,同时也能够更好地理解计算机网络中各层之间的关系和作用。 《计算机网络-自顶向下方法》是一本非常重要的计算机网络教材,不仅适用于本科生和研究生,也适用于从事网络工程或计算机相关行业的技术人员。通过对该教材的学习和理解,读者可以深入了解计算机网络的核心概念和技术,从而在相关领域取得更好的成果。 ### 回答2: 《计算机网络-自顶向下方法》是计算机网络课程中经典的教材之一。该教材采用自顶向下的方法,即从应用层开始,向下逐层讲解网络的各个层次,并且强调了网络协议的设计思想和实现原理。 在本教材中,作者基于该方法,详细介绍了TCP/IP协议族,包括网络层、传输层、应用层和物理层。每一章都有丰富的图示和实例,以帮助学生深入理解和掌握网络协议的工作原理和应用。 此外,本教材还介绍了一些相关的话题,例如错误检测和纠正、网络安全和隐私、无线和移动网络等。这些话题不仅丰富了课程内容,也加强了学生对网络技术的综合认识能力。 总之,该教材适用于计算机网络相关专业的本科生和研究生,也适用于从事网络工程的从业人员。如果您想深入了解计算机网络的知识和技术,本教材是您不可缺少的参考书。 ### 回答3: 《计算机网络-自顶向下方法英文版清晰版.pdf》是一本通过自顶向下的方式来讲解计算机网络的书籍。自顶向下的方法是指从应用层开始,逐步向下分解,一层层地介绍计算机网络各个层次的知识点。 该书主要分为三个部分:应用层、传输层和网络层。在应用层,介绍了HTTP、DNS、SMTP等协议的工作原理和应用;在传输层,讲解了TCP和UDP的区别、流量控制和拥塞控制等内容;在网络层,涉及到了路由选择、IP协议和子网划分等知识点。 除了一般的理论知识外,该书还介绍了一些实际应用,如Wireshark的使用和实践、网络安全和加密技术等内容。此外,书中还提供了大量的示例和代码,可以帮助读者更好地理解和应用所学知识。 总之,《计算机网络-自顶向下方法英文版清晰版.pdf》是一本十分详细、通俗易懂计算机网络入门书籍,适合各个层次的读者阅读和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值