原标题:用编程的方法解决“鸡兔同笼”系列问题,其实很简单

今日题型讲解

同学们是不是觉得古人很“无聊”啊,有事没事竟然把鸡和兔子关在一个笼子里数腿玩,还要各种变着花样考验大家

相信大家在学校里都已经学过“鸡兔同笼”这个问题的数学解法啦。今天我就来讲解两种编程解法,让我们用21世纪的方法再次解开这道经典古老难题~~~

今有雉兔同笼,

上有三十五头,

下有九十四足,

问雉兔各几何?

第一种解法

#假设 鸡有0只 ,则 兔有35-ji只

ji=0

#用while循环语句来判断符合足94只的情况

while 1:

tu=35-ji

#如果 鸡的脚+兔的脚=94,则输出鸡兔数量的结果,中断循环

if 2*ji+4*tu==94:

print("鸡有:",ji,"只")

print("兔有:",tu,"只")

break

#否则用鸡的数量加1,循环判断符合情况的数字

ji+=1

第二种解法

分析:

根据题意,头的总数为35,我们用变量head来记录头的总数:head=35

而腿的总数为94,我们用变量foot来记录腿的总数:foot=94

我们用变量chicken记录鸡的数量。因为头的总数为35,说明鸡和兔共有35只,所以鸡的数量是0-35之间的某一个数,这里我们用for循环来指挥计算机,自动罗列所有可能出现的情况:

for chicken in range(0,head+1):

然后,我们用变量rabbit记录兔子的数量。因为鸡和兔的总数等于头的数量,所以兔的数量rabbit等于头的总数head减去鸡的数量chicken:

rabbit=head-chicken

鸡有两条腿,兔子有四条腿,所以腿的总数为:

chicken*2+rabbit*4

当腿的总数恰好等于题目的要求94条腿的时候,我们就成功地得到了问题的解。

最后输出答案:

if chicken*2+rabbit*4==foot:

print("鸡",chicken,"兔",rabbit)

'''

完整程序:

head=35

foot=94

for chicken in range(0,head+1):

rabbit=head-chicken

if chicken*2+rabbit*4==foot:

print("鸡有:",chicken,"只")

print("兔有:",rabbit,"只")

万能解题法

那么,为了解决类似所有题目【给出不同数目的头和脚】,我们需要自定义一个函数,这样就做到了“秒”出答案!!!

def jitutonglong(a, b):

x = (4 * a - b) / 2

if a != 0 and (4 * a - b) % (x * 2) == 0:

y = a - x

if x < 0 or y < 0:

print("{}只头{}条腿的情况无解".format(a, b))

else:

print("鸡有{}只,兔有{}只".format(int(x), int(y)))

else:

print("{}只动物{}条腿的情况无解".format(a, b))

a = eval(input("请输入鸡和兔的总数n"))

b = eval(input("请输入鸡和兔的脚数n"))

jitutonglong(a, b)

程序运行如下

让你在数学上头疼的“鸡兔同笼”问题放到编程里就可以轻松解决,你学会了吗?

其实很多简单和日常的小问题,都蕴藏着编程最核心的思想——计算思维,计算思维的养成又能够很好的推动数学思维与能力的提升。

编程是很神奇的语言,大家一起加油吧

责任编辑:

python123鸡兔同笼编程_用编程的方法解决“鸡兔同笼”系列问题,其实很简单相关推荐

  1. 通用编程_通用编程准则

    通用编程 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导您完成Ja ...

  2. 小米米兔机器人的发展史_面向教育!小米推出米兔机器人

    小米有一种特殊的气质,深入哪个领域,哪个领域的产品价格就会变的更亲民,这不,小米也推出了积木机器人,相比乐高4000元以上的价格,米兔499的价格很亲民,让普通家庭也可以买来给孩子玩. 小米推出了双十 ...

  3. java 函数式编程_函数式编程杂谈

    比起命令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断演进,逐层推导出复杂的运算.本文通过函数式编程的一些趣味用法来阐述学习函数式编程的奇妙之处. 一 ...

  4. python向量化编程_向量化编程思维。

    首先恭喜你找到工作:) 在我看来,编程和向量化思维一点关系都没有.向量化思维是只有在处理矩阵运算的时候,才会使用的方式.而且,本质上,在我看来,向量化思维本质是数学能力,而非编程能力.在这个课程中,你 ...

  5. 编程_三大编程思想:POP、OOP、AOP

    文章目录 三大编程思想 POP:面向过程编程 优点: 缺点: OOP:面向对象编程 1.抽象性: 2.封装性: 3.继承性: 4.多态性: 优点: 缺点: AOP:面向切面编程 优点: 缺点: 总结 ...

  6. 响应式编程 函数式编程_函数式编程简介

    响应式编程 函数式编程 根据您要求的对象, 函数式编程 (FP)是一种应运而生的开明编程方法,或者是一种在实践中几乎没有实际好处的过于学术化的方法. 在本文中,我将解释什么是函数式编程,探讨其好处,并 ...

  7. python图形设计编程_少儿编程分享:手把手教你用Python制作艺术图片

    原标题:少儿编程分享:手把手教你用Python制作艺术图片 在前面的几篇文章中,我们分享了一些用PyGame制作小游戏的教程.我们今天的分享使用的仍然是PyGame,只不过这次不是写游戏啦-我们要用P ...

  8. 结对编程_结对编程:使其工作的好处,技巧和建议

    结对编程 Pair Programming - a pair that's greater than the sum of its parts. You may have heard about pa ...

  9. python二元一次方程组用鸡兔同笼的思路来写编程_python二元一次方程组用鸡兔同笼的思路来写编程_《应用二元一次方程组——鸡兔同笼》......

    - 1 - <应用二元一次方程组 -- 鸡兔同笼> 教学目标 1 ,知识与技能:会用二元一次方程组 在具体问题的解决过程中提高学生的解二 元一次方程组的技能: 2 .过程与方法:使学生掌握 ...

最新文章

  1. JS 之 innerHTML
  2. 一些c++的常见问题(系列一)
  3. 石川es6课程---12、Promise
  4. 【嵌入式开发】 ARM 汇编 (指令分类 | 伪指令 | 协处理器访问指令)
  5. ProjectEuler500 【组合数学】【数论】
  6. android eng 模式,android 4.0 编译模式 eng - user 时遇到的有关问题
  7. 机器学习面试题(part5)
  8. 身份管理软件公司Okta计划IPO,目标融资1亿美元
  9. 【MySQL原理解析】01. 一条SQL查询语句是如何执行的
  10. mysql事务总结_MySQL数据库和相关事务总结
  11. linux 文件类型 时间戳 ls bash特性四 文件查看命令 cp move echo
  12. Cmdkey 凭证管理器工具
  13. Android影视APP源码,影视APP源码,可打包成安卓苹果,亲测可用
  14. 淘宝API 优惠券查询
  15. 计算机可以关闭家庭组,win10系统禁用(关闭)家庭组功能的具体方法
  16. python 使用PIL库批量修改图片大小
  17. CSS Tricks - 你应该知道的 CSS 技巧
  18. 数据分析师面临的11个挑战及其解决方法
  19. deepinV20 显卡驱动 cuda10.2+cudnn配置
  20. scp传输文件时指定端口

热门文章

  1. 最新最全caffe2在win10下安装与在vs2015下编译(包括cuda、cmake、anaconda)
  2. 完美攻略心得之圣魔大战3(Castle Fantisia)艾伦希亚战记(艾伦西亚战记)包括重做版(即新艾伦希亚战记)...
  3. 【渝粤题库】广东开放大学 秘书实务21 形成性考核
  4. 如何搭建 HTTPS?
  5. Matlab中弧度转角度、角度转弧度
  6. 【芝麻信用陈玲玲:用户正在越来越珍惜自己的信用,这要感谢区块链等技术】
  7. 解决win7系统,失去焦点的问题(打字光标突然消失,启动游戏后,一直切换到桌面)
  8. bugku-杂项-好多压缩包(压缩文件CRC32碰撞、rar文件头)
  9. 用Python实现城市方向熵的计算
  10. 解决GPar的常见并发问题