百鸡百钱
百鸡百钱问题解题技巧

百鸡百钱问题解题技巧
百鸡百钱问题是一个经典的数学问题,它涉及到线性方程组的求解。
在这个问题中,有100只鸡和100元钱,公鸡5元一只,母鸡3元一只,小鸡1元三只。
我们需要找出公鸡、母鸡和小鸡各有多少只,使得总价值等于总数量。
解题技巧如下:
1、设公鸡、母鸡和小鸡的数量分别为x、y 和z 只。
2、根据题目条件,我们可以建立以下方程:
x + y + z = 100 (总数量)
5x + 3y + z/3 = 100 (总价值)
3、解这个方程组,找出x、y 和z 的值。
4、由于z 是3的倍数,我们可以先从z 入手,解出z 的值。
5、将z 的值代入方程组中,解出x 和y 的值。
6、最后,验证解的合理性,确保x、y 和z 都是非负整数。
通过以上步骤,我们可以求解百鸡百钱问题。
需要注意的是,由于这是一个线性方程组问题,解可能有多个,因此需要验证解的合理性。
古代有趣的题目

在古代,有许多有趣的题目,其中一些是数学问题,还有一些涉及到文字游戏、谜语和哲学思考。
以下是一些古代有趣的题目:
1.鸡兔同笼:这是一个经典的古代数学问题。
题目描述了一个笼子里有一些鸡
和兔子,总共有若干头和脚,要求找出鸡和兔子各有多少只。
2.百钱百鸡:另一个古代的数学问题。
有一个人用100钱买了100只鸡,公鸡
5钱一只,母鸡3钱一只,小鸡1钱三只,问公鸡,母鸡,小鸡各买了多少只?
3.韩信点兵:韩信带兵打仗,只知道自己的兵数是5的倍数,而且在1000~
2000人之间,他利用“韩信点兵”的方法求出士兵数。
问:这个士兵数是多少?
4.百僧分百馍:唐诗云:“一百馒头一百僧,大僧三个更无争,小僧三人分一
个,大小和尚各几丁?”意思是有100个和尚分100个馒头,大和尚每人分3个,小和尚3人分一个,问大和尚、小和尚各多少人?
5.丢番图的墓志铭:丢番图(Diophantus)是古希腊的一位数学家。
他的墓志
铭上刻着:“过路人,这里埋着丢番图的骨灰。
下面的数目可以告诉你他的一生经过了多少寒暑。
他生命的六分之一是童年;再活了十二分之一,他颊上长出了胡须;又过了生命的七分之一,他走上了婚床;五年后喜得贵子,可怜的小孩活了生命的一半就撒手人间;此后,四年中老伴相继而去;五年前蜡烛燃尽了生命之光。
不知道他逝世多少时,那空空的墓穴将是他的归宿。
”
你知道丢番图到底活了多少岁吗?
以上只是一部分古代有趣的题目,如果您对此感兴趣,可以阅读数学史或相关文献以获取更多信息。
[作文素材]张丘建百钱买百鸡名人故事
![[作文素材]张丘建百钱买百鸡名人故事](https://img.taocdn.com/s3/m/65b4a0f36c175f0e7dd1371e.png)
[作文素材]张丘建百钱买百鸡名人故事张丘建百钱买百鸡名人故事张丘建,南北朝时期北魏人,是我国古代一位伟大的数学家。
他的《张丘建算经》,是我国古代数学十大经典之一,内有等差级数、二次方程、不定方程等问题,对我国数学的发展起过重要作用。
张丘建小时喜欢读书,尤喜数学。
日常生活中,遇到计算方面的难题,别人不会,他却能解决,当时就被人称为数学神童。
他长大成名后,关于他小时候在计算方面的故事流传甚多。
这里介绍的“百钱买百鸡”的故事,便是其中的一个。
张丘建家中几代人都以养鸡为业。
他的父亲张公尤善养鸡。
他家的鸡,个大肉多,特别是当鸡瘟流行时,别人家的鸡常常死光,而他家的.鸡却安然无恙。
因此,前来买鸡的客人自然很多。
客户来买鸡,鸡的品种、大小不同,价格也不相同,买得多时,计算就颇麻烦了。
这时,往往是父亲还在费力地相加,小丘建已张口说出总价。
街坊四邻和买鸡客人见了,大为惊讶。
因此,附近有人遇上了难以计算的问题,便常来找他帮忙。
当地县令听说此事,不肯相信,遂决定考一考张丘建。
他派人把丘建的父亲张公找来,问道:“你卖鸡多少钱一只?”张公回答:“公鸡五文钱一只,母鸡三文钱一只,小鸡一文钱三只。
”县令说:“好,现在就按你说的价钱,给你一百文钱,买一百只鸡。
回去给我挑一百只鸡,立即送来。
”他想,来回路上需用两个时辰,这样复杂的问题,我看你儿子要多少时间才能算清。
张公回到家中,对儿子一说,张丘建略一思考,说:“一百文钱,可以买四只公鸡,十八只母鸡,再七十八只小鸡,正好不多不少一百只。
给他送去吧!”张公连忙按儿子所说挑选了一百只鸡,赶回县衙。
县令见刚好两个时辰多一点,再按送来的一百只鸡计算价格,正好一百文。
接着,县令又拿出一百文钱,仍要一百只鸡,只是公鸡、母鸡和小鸡的数目不能和这次一样。
张公回家,在约定的时间内,又送来八只公鸡、十一只母鸡和八十一只小鸡,共一百只鸡。
县令一算,仍是分文不差。
这一下,县令来了兴致,再拿出一百文钱,买一百只鸡,公鸡、母鸡、小鸡数则要和头两次都不一样。
数学经典问题

数学经典问题
数学经典问题包括鸡兔同笼问题、百鸡百钱问题、公主选驸马问题、李白喝酒问题、托尔斯泰割草问题、韩信点兵问题、木匠建房问题等。
1. 鸡兔同笼问题:是经典的数学问题之一,它的一般形式是:已知鸡和兔子放在一个笼子里,我们看到有a个头和b 条腿,问鸡有几只,兔子有几只。
2. 百鸡百钱问题:要求买100只鸡,每只鸡三个钱,公鸡五个钱一只,母鸡三个钱一只,小鸡一个钱三只,问公鸡几只,母鸡几只,小鸡几只。
3. 公主选驸马问题:这个问题的本质是一个数学推理问题,它要求从100个奴隶中选出10个奴隶作为驸马,并要求这10个奴隶中有一个是王子。
4. 李白喝酒问题:这个问题的本质是一个数学概率问题,它要求计算李白喝醉的概率。
5. 托尔斯泰割草问题:这个问题的本质是一个数学几何问题,它要求计算托尔斯泰割草的面积。
6. 韩信点兵问题:这个问题的本质是一个数学概率问题,它要求计算韩信点兵的数量。
7. 木匠建房问题:这个问题的本质是一个数学几何问题,它要求计算木匠建房所需要的时间。
此外还有哥德巴赫猜想、费马大定理、四色猜想等著名的未解数学问题。
多种解法求百钱百鸡问题

学号:0121210680225《算法设计与分析B》大作业题目多种解法求百钱百鸡问题学院计算机科学与技术学院专业软件工程班级Sy1201姓名李安福指导教师何九周2014 年12 月26 日多种解法求百钱百鸡问题摘要:中国古代数学家张丘建提出的“百钱买百鸡”可以采用蛮力法来解决。
本文给出了百钱百鸡问题的描述,采用蛮力法来解决这个问题,并通过分析对算法进行了优化,进一步提高了解决此问题的效率。
关键字:枚举,执行效率,蛮力法,不定方程,循环变量。
1引言蛮力法是一种简单直接地解决问题的方法,通常直接基于问题的描述和所涉及的概念定义。
这种方法经过很少的思考,把问题的所有情况或所有的过程交给计算机去一一尝试,从中找出问题的解。
由于计算机运算速度快,在解决问题时可采用这种“懒惰”的策略。
蛮力法的主要优点在于它是有广泛的适用性和简单性;它的缺点是大多数蛮力算法的效率都不高。
2问题概述 百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?3问题的分析题目分析与算法设计这是一个古典数学问题我们假设公鸡、母鸡和小鸡的个数分别为x,y,z,那么买公鸡的钱数为5x ,买母鸡的钱数为3y ,买小鸡的钱数为z/3;再由题意,x,y 和z 的和为100,问题化为可三元一次方程组,该问题的数学模型如下:⎩⎨⎧=++=++)(100)(1003/35百鸡百钱z y x z y x这里x,y,z 为正整数,且z 是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z 的取值范围:1) x 的取值范围为1~20 2) y 的取值范围为1~33 3) z 的取值范围为1~99对于这个问题我们可以用穷举的方法,遍历x,y,z 的所有可能组合,最后得到问题的解。
4算法设计 4.1算法设计14.1.1数据要求问题中的常量: 无无问题的输出:int x,y,z /*公鸡、母鸡、小鸡的只数*/4.1.2初始算法1.初始化为1(循环语句中初始值为1);2.计算x循环,找到公鸡的只数;3.计算y循环,找到母鸡的只数;4.计算z循环,找到小鸡的只数;5.结束,程序输出结果后退出。
百钱买百鸡c语言编程题

"百钱买百鸡"是一个经典的数学问题,故事是这样的:公鸡5钱一只,母鸡3钱一只,小鸡1钱三只,现在要用100钱买100只鸡,问公鸡、母鸡、小鸡各多少只。
下面是一个使用C语言解决这个问题的示例代码:
c
#include <stdio.h>
int main() {
int x, y, z; // x代表公鸡数量,y代表母鸡数量,z代表小鸡数量
for (x = 0; x <= 20; x++) { // 公鸡最多买20只
for (y = 0; y <= 33; y++) { // 母鸡最多买33只
z = 100 - x - y; // 剩余的数量就是小鸡的数量
if (z % 3 == 0 && x * 5 + y * 3 + z / 3 == 100) {
printf("公鸡:%d只,母鸡:%d只,小鸡:%d只\n", x, y, z);
}
}
}
return 0;
}
这段代码使用两个嵌套的for循环来遍历所有可能的公鸡和母鸡的数量组合。
对于每一对组合,它计算出小鸡的数量,然后检查是否满足题目的条件。
如果满足条件,它就打印出这一组解。
c语言百钱买百鸡问题

百钱买百鸡问题——一百个铜钱买了一百只鸡,其中公鸡一只5 钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。
这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x ,y ,z ,问题化为三元一次方程组:⎩⎨⎧=++=++)(100)(1003/35百鸡百钱z y x z y x这里x,y,z 为正整数,且z 是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z 的取值范围:1) x 的取值范围为1~20 2) y 的取值范围为1~333) z 的取值范围为3~99,步长为3对于这个问题我们可以用穷举的方法,遍历x,y,z 的所有可能组合,最后得到问题的解。
数据要求问题中的常量: 无问题的输入: 无问题的输出:int x ,y ,z /*公鸡、母鸡、小鸡的只数*/ 初始算法1.初始化为1;2.计算x循环,找到公鸡的只数;3.计算y循环,找到母鸡的只数;4.计算z循环,找到小鸡的只数;5.结束,程序输出结果后退出。
算法细化算法的步骤1实际上是分散在程序之中的,由于用的是for循环,很方便的初始条件放到了表达式之中了。
步骤2和3是按照步长1去寻找公鸡和母鸡的个数。
步骤4的细化4.1 z=14.2 是否满足百钱,百鸡4.2.1 满足,输出最终百钱买到的百鸡的结果4.2.2 不满足,不做处理4.3 变量增加,这里注意步长为3流程图图5-8 程序执行流程图程序代码如下#include "stdio.h"main(){int x,y,z;for(x=1;x<=20;x++)for(y=1;y<=33;y++)for(z=3;z<=99;z+=3){if((5*x+3*y+z/3==100)&&(x+y+z==100))/*是否满足百钱和百鸡的条件*/printf("cock=%d,hen=%d,chicken=%d\n",x,y,z);}}分析程序运行结果如下:cock=4,hen=8,chicken=78cock=8,hen=11,chicken=81cock=12,hen=4,chicken=84对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后,小鸡数就定了,即y-x-100z 。
百钱百鸡问题

百鸡问题
公元5世纪末,我国古代数学家张丘建在他所撰写的《算经》中,提出了这样的一个问题:“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一.百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”意思是公鸡5元一只,母鸡3元一只,小鸡1元三只。
用100元100只鸡,求公鸡、母鸡、小鸡各买几只。
假设a 为公鸡只数,b 为母鸡只数,c 为小鸡只数,如果把问题转化为n 元钱买n 只鸡,针对上述问题n =100,根据题意可得出下面的约束方程:
53/3%30
a b c n
a b c n c ++=++==
用穷举法实现如下所示:
图4.3 穷举法求解百鸡问题
这个算法有三重循环,枚举公鸡数量的外循环,枚举母鸡数量的中间循环以及枚举小鸡数量的内循环,主要执行时间取决于内循环的循环体的执行次数,需要执行(n+1)3次,当n=100时,内循环需要执行大于100万次。
考虑到n元钱只能买到n/5只公鸡或n/3只母鸡,因此有些组合可以不必考虑,而小鸡的数目又取决于公鸡和母鸡的只数,上述的内循环可以省去。
图4.3 改进算法求解百鸡问题
改进算法只有两层循环,枚举公鸡数量的外循环和枚举母鸡数量的内循环,内循环的执行次数为(n/5+1) (n/3+1)。
当n=100时,内循环执行21*34=714次,这和穷举算法的100万次相比,仅为原来的万分之七,有重大改进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
百鸡百钱
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
公鸡一只5块钱,母鸡一只3块钱,小鸡三只一块钱,一百块买一百只鸡,问公鸡,母鸡,小鸡各多少。
解:一般情况下,正常的数学方法是无法解答此题的,因为是3元一次方程组,但却只有两组,不过,古人估计是用枚举的方法解题的,如果用编程枚举求解(自己慢慢枚举也可以,公鸡从0-20一个一个试也是能出来的)可知四解
1.公鸡0只,母鸡25只,小鸡75只
2.公鸡4只,母鸡18只,小鸡78只
3.公鸡8只,母鸡11只,小鸡81只
4.公鸡12只,母鸡4只,小鸡84只。