百钱百鸡问题_第1页
百钱百鸡问题_第2页
百钱百鸡问题_第3页
百钱百鸡问题_第4页
百钱百鸡问题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

提出问题:百钱百鸡问题

中国古代数学家张丘建的《算经》中有一著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

分析问题本问题的最终求解是符合两个方程条件的三个未知数,设公鸡、母鸡、小鸡的数量分别为x、y、z则有:x+y+z=1005x+3y+z/3=100用通俗的话来说,题目的意思是:用100文钱买来100只鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡1文钱3只。问:在这100只鸡中,公鸡、母鸡、小鸡各是多少只?算法一设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组:这里x,y,z为正整数,由于鸡和钱的总数都是100,可以确定x,y,z的取值范围:x的取值范围为1~20y的取值范围为1~33z的取值范围为3~99对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。求解问题算法一程序Dimx,y,zAsIntegerForx=0To20Fory=0To33Forz=0To100Step3If(x+y+z=100)And(x*5+y*3+z/3=100)ThenPrint"公鸡";x,Print"母鸡";y,Print“小鸡”;z,EndIfNextzNextyNextx算法二当公鸡与母鸡的数目确定了,小鸡的数目可用总数100减去公鸡与小鸡的数、于是三重循环可变为二重循环。Dimx,y,zAsIntegerForx=0To20Fory=0To33z=100-x-yIf(x*5+y*3+z/3=100)ThenPrint;"公鸡数";x,Print;"母鸡数";y,Print;"小鸡数";z,PrintEndIfNextyNextx算法三算法二中,当公鸡的数量确定,母鸡的数量是随公鸡的数量变化而变化、不需要每次都从零开始牧举到33结束。Dimx,y,zAsIntegerForx=0To20Fory=0To(100\3-x)z=100-x-yIf(x*5+y*3+z/3=100)ThenPrint;"公鸡数";x,Print;"母鸡数";y,Print;"小鸡数";z,PrintEndIfNextyNextx运行结果为:02575418788118112484算法四《百钱百鸡》求解的是符合两个条件的三种鸡的数量,是用两个方程求解三个未知数的问题。x+y+z=1005x+3y+z/3=100当我们把公鸡数X当成已知数:则根据方程可解出母鸡、小鸡数:Y=25-7x/4*Z=75+3x/4*这样算法四只用一重循环来确定公鸡的数量,母鸡和小鸡的数量由方程来计算。但要注意鸡的数量不可为负数和小数,要加以判断。算法四Dimx,y,zAsIntegerForx=0To20y=25-7*x/4z=75+3*x/4If(y>=0Andz>=0)And(x*5+y*3+z/3=100)ThenPrint;"公鸡数";x,Print;"母鸡数";y,Print;"小鸡数";z,PrintEndIfNextx本题小结:算法一使用了三重循环、算法二使用了二重循环、算法三又将二重循环的循环次数减少,而算法四借助数学方程解题,只用了一重循环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论