百钱买百鸡实验报告

百钱买百鸡实验报告


2024年5月1日发(作者:)

一、题目描述

我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,

该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买

百鸡,则翁、母、雏各几何?

翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要

用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

二、解题思路

对n=100的情况,因为有三个变量,则有三重循环和二重循环两种算法

1、算法一:三重循环

(1)变量变化范围的确定:由于公鸡5钱一只,则100钱最多可购买100/5=20

只公鸡,此即为第一个变量的变化上限;由于母鸡3钱一只,则100钱最多可购

买100/3≈33只母鸡,此即为第二个变量的变化上限;由于小鸡三只一钱,而所

有鸡的总数不得超过100只,则100即为第三个变量的变化上限;

(2)条件的控制:由百钱买百鸡可知,鸡的数量为100只,买鸡所用的钱数为

100钱,即控制条件为a+b+c=100且a*5+b*3+c/3=100;

2、二重循环:

(1)变量变化范围的确定:由于整题共有3个变量,所以当前两个变量确定后,

第三个变量自然被确定下来,故可采用二重循环解题。前两个变量的确定同三重

循环,第三个变量则用c=n-a-b来确定;

(2)条件的控制:由百钱买百鸡可知,鸡的数量为100只,买鸡所用的钱数为

100钱,即控制条件为a+b+c=100且a*5+b*3+c/3=100;

由于需要讨论算法的时间性能,在程序中加入时间函数计算程序运行所需的时间

进行比较。用控制变量的方法,对两种算法中的n进行同样的变化处理,来讨论

两种算法的时间性能,e.g.分别令n=100,n=200,n=500,n=1000,n=2000,n=5000

三、自我评估、反思

由于较长时间未使用C语言编程,所以在使用语法上略显生疏了些,通过这次作

业的实践过程,对C语言的编程语法规则熟悉了许多,虽然在运行过程中出现了

一些错误,但也都能够较快地解决,第一次的数据结构实验作业总体完成的还算

比较顺利。

个人认为我还需要更多的练习以熟悉数据结构的实验操作,争取在下次的实验中

更加熟练,有效率。

四、实验结果截图

1、算法一:三重循环

(1)n=100

(2)n=200

(3)n=500

(4)n=1000

(5)n=2000

(6)n=5000

2、算法二:二重循环

(1)n=100

(2)

n=200

(3)n=500

(4)n=1000

(5)n=2000

(6)n=5000

3、两种算法的时间性能比较

两种算法时间性能比较

30

25

20

15

10

5

0

100 200 500

三重循环

1000

二重循环

2000 5000

总结:由比较折线图可知,当n的值较小时,两种算法用时相差不远,随n的值

增大,两者用时差异越大,总体上,二重循环用时较少,时间性能较好。


发布者:admin,转转请注明出处:http://www.yc00.com/news/1714573251a2472688.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信