原标题:【MagO第三期】经典枚举算法题:百钱买百鸡

01

历史故事

张邱建提出的百钱买百鸡问题:

山东临清的数学家——张邱建,约公元5世纪著名的大数学家。他将毕生的精力投入到算学研究之中,为数学的不断发展和完善,做出了重大贡献。

《张邱建算经》卷下第三十八题。文曰:“今有鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,凡百钱买鸡百只,问鸡翁、母、雏各几何?”在题中有三个未知数,却只有两个方程,为不定方程组。

张邱建对此题给出了三组答案:第一组:公鸡四、母鸡十八,小鸡七十八;第二组:公鸡八、母鸡十一,小鸡八十一;第三组:公鸡十二、母鸡四、小鸡八十四。

02

百钱买百鸡问题

公鸡每只5元,母鸡每只3元,三只小鸡1元,用100元买100只鸡,问公鸡、母鸡、小鸡各多少只?

题目答案应为四组解:

公鸡有0 母鸡有25 小鸡有75

公鸡有4 母鸡有18 小鸡有78

公鸡有8 母鸡有11 小鸡有81

公鸡有12 母鸡有4 小鸡有84

题目链接地址:

https://oj.coding61.com/problem/%E6%9E%9A%E4%B8%BE-20

03

思路分析

假设公鸡、母鸡、小鸡数量分别为mj,gj和xj。根据百钱买百鸡的规则可以得到如下不定方程组。

(1)gj+mj+xj=100

(2)5*gj+3*mj+1*xj=100

由于“百钱”是定值,所以 mj,gj和xj有取值范围。5*gj<=100 ,则0<=gj<=20; 同理 0<=mj<=33;那么xj=100-gj-mj。

先敲定一个变量的值,再利用另外两个值循环,通过计算机来枚举所有的可能结果,这种方法称为枚举算法。

04

参考代码

05

“计算马的数量”

“计算马的数量”,是我们橙子OJ上的一个题目,本质上就是百钱买百鸡问题。

100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。

与上题类似,这里也需要解决一个三元一次方程组的问题。假设分别用i,j,k代表大马、中马、小马的数量,则列出方程组并确定未知数的取值范围如下。

(1)i+j+k=100

(2)3i+2j+k=100

其中0<=i<=33; 0<=j<=50; k=100-i-j

题目链接地址:

https://oj.coding61.com/problem/%E5%BE%AA%E7%8E%AF%E7%BB%93%E6%9E%8415

06

项目练习

通过上面两题,相信大家已经此类不定方程组枚举所有可能性(枚举算法)有了清楚的认识,对于类似题目,你能自己完成吗?橙子OJ上还有一个题目 “校门外的树”,也是枚举算法问题,赶紧试着完成吧!

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,…,L都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

尝试一下,自己解题吧:

https://oj.coding61.com/problem/NOIP-P-2005-2

还是没有思路?那么可以看一下讲解视频吧:返回搜狐,查看更多

责任编辑:

枚举法C语言三个马驮东西,【MagO第三期】经典枚举算法题:百钱买百鸡相关推荐

  1. 百钱买百鸡(C语言,枚举法)

    养成好习惯,点个赞 再走:有问题,欢迎私信.评论,我看到都会回复的 百钱买百鸡 我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题, 该问题叙述如下: ...

  2. python123百钱买百鸡_求解百钱买百鸡问题。假设大鸡 5 元一只,中鸡 3 元一只,小鸡 1 元三只,现有 100 元钱想买 100 只鸡,有多少种买法?截图代码和运行结果_学小易找答案...

    [填空题]表达式 'apple.peach,banana,pear'.find('ppp') 的值为 ________ . [填空题]已知 x = '123' 和 y = '456' ,那么表达式 x ...

  3. 6.17 C语言练习(百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?)

    [练习] 题目要求:中国古代数学家张丘建在他的<算经>中提出了著名的"百钱买百鸡问题"鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? ...

  4. 百钱买百鸡python编程列表推导式_使用循环和列表推导式两种方法求解百钱买百鸡问题。假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?...

    [程序题]编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 1/1+1/3+...+1/n [单选题]患者男,67岁.确诊为原发性支气管肺癌,为行手术 ...

  5. 【C语言基础练习】百钱买百鸡问题。母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只?

    百钱买百鸡问题.母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只? 1 #include<stdio.h>2 int main()3 {4 int ...

  6. 【C、C++系列-10】C语言实现:百钱买百鸡问题

    [C.C++系列-10]C语言实现:百钱买百鸡问题 1. 问题 百钱买百鸡问题:我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题.该问题叙述如下:鸡 ...

  7. 枚举算法2——百钱买百鸡

    百钱买百鸡 共计3元一只,母鸡5元一只,小鸡1元三只,一百元买一百只鸡.请写出公鸡.母鸡.小鸡的数目. [分析] 假设公鸡数为cock.母鸡数为hen.小鸡数为chick,得到两个关系,cock+he ...

  8. c语言 百钱买百鸡问题

    c语言 百钱买百鸡问题 如题 话不多说了,直接上代码 如题 公元钱五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱 ...

  9. C语言试题七十六之请编写函实现百钱买百鸡

    1. 题目 编写函数:中国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题",鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各 ...

最新文章

  1. 关于文献中二代测序数据下载(NCBI)的问题
  2. lnmp架构——nginx的负载均衡
  3. mysql ibdata作用_mysql data文件夹下ibdata1 文件作用
  4. .NET框架类库中的命名空间
  5. 统计学习方法笔记(李航)———第三章(k近邻法)
  6. 计算机字体颜色太浅,win10 windows界面字体颜色太淡如何解决
  7. 01 安装STEP7软件和USB驱动
  8. oracle和mysql建表语句的区别_mysql和oracle建表语句的区别
  9. WMV格式如何转为高清无损MP4视频格式
  10. “杀京东”京东价格监控软件项目开发日志一
  11. POJ 3626 Mud Puddles (BFS)
  12. Unreal 4 更改Engine位置
  13. 聚观早报 | 苹果2024年放弃高通;腾讯回应进军类 ChatGPT
  14. 最新文本转语音的接口(免费),百度语音作废
  15. 中登托管行结算路径_在非根路径上托管Next.JS应用
  16. 【开发随记】【提效】工作习惯那些事系列之一——To-Do List
  17. 求质数(Prime Number 素数)的方法——厄拉多塞筛法
  18. ChatGPT 大规模封号,并停止注册!
  19. 记一次mysql5.7的新特性derived_merge的坑
  20. 输入一行字符(输入以字符#结束),分别统计其中字母和数字字符的个数。

热门文章

  1. 大数据技术原理与应用课程建设经验分享
  2. 京东 9.17笔试题 Java
  3. 条件渲染之react高阶组件——HOC
  4. win10+Kali双系统安装
  5. 基于使用方的火控系统的测试平台研究
  6. 前端实现表格中的颜色变化以及不同点击效果
  7. python程序计时_Python计时器小程序
  8. 双向buck boost以及带隔离变压器DAB拓扑可支持各种电压等级的双向DCDC变换,纹波小,动态响应好
  9. matlab如何花间,酌酒花间,磨针石上;倚剑天下,挂弓扶桑。赞颂的是谁
  10. 电子海图开发第四十九篇 船舶综合导航系统的设计(共一百篇)