百鸡百钱
百鸡百钱问题解题技巧
百鸡百钱问题解题技巧
百鸡百钱问题是一个经典的数学问题,它涉及到线性方程组的求解。
在这个问题中,有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)是古希腊的一位数学家。
他的墓志
铭上刻着:“过路人,这里埋着丢番图的骨灰。
下面的数目可以告诉你他的一生经过了多少寒暑。
他生命的六分之一是童年;再活了十二分之一,他颊上长出了胡须;又过了生命的七分之一,他走上了婚床;五年后喜得贵子,可怜的小孩活了生命的一半就撒手人间;此后,四年中老伴相继而去;五年前蜡烛燃尽了生命之光。
不知道他逝世多少时,那空空的墓穴将是他的归宿。
”
你知道丢番图到底活了多少岁吗?
以上只是一部分古代有趣的题目,如果您对此感兴趣,可以阅读数学史或相关文献以获取更多信息。
[作文素材]张丘建百钱买百鸡名人故事
[作文素材]张丘建百钱买百鸡名人故事张丘建百钱买百鸡名人故事张丘建,南北朝时期北魏人,是我国古代一位伟大的数学家。
他的《张丘建算经》,是我国古代数学十大经典之一,内有等差级数、二次方程、不定方程等问题,对我国数学的发展起过重要作用。
张丘建小时喜欢读书,尤喜数学。
日常生活中,遇到计算方面的难题,别人不会,他却能解决,当时就被人称为数学神童。
他长大成名后,关于他小时候在计算方面的故事流传甚多。
这里介绍的“百钱买百鸡”的故事,便是其中的一个。
张丘建家中几代人都以养鸡为业。
他的父亲张公尤善养鸡。
他家的鸡,个大肉多,特别是当鸡瘟流行时,别人家的鸡常常死光,而他家的.鸡却安然无恙。
因此,前来买鸡的客人自然很多。
客户来买鸡,鸡的品种、大小不同,价格也不相同,买得多时,计算就颇麻烦了。
这时,往往是父亲还在费力地相加,小丘建已张口说出总价。
街坊四邻和买鸡客人见了,大为惊讶。
因此,附近有人遇上了难以计算的问题,便常来找他帮忙。
当地县令听说此事,不肯相信,遂决定考一考张丘建。
他派人把丘建的父亲张公找来,问道:“你卖鸡多少钱一只?”张公回答:“公鸡五文钱一只,母鸡三文钱一只,小鸡一文钱三只。
”县令说:“好,现在就按你说的价钱,给你一百文钱,买一百只鸡。
回去给我挑一百只鸡,立即送来。
”他想,来回路上需用两个时辰,这样复杂的问题,我看你儿子要多少时间才能算清。
张公回到家中,对儿子一说,张丘建略一思考,说:“一百文钱,可以买四只公鸡,十八只母鸡,再七十八只小鸡,正好不多不少一百只。
给他送去吧!”张公连忙按儿子所说挑选了一百只鸡,赶回县衙。
县令见刚好两个时辰多一点,再按送来的一百只鸡计算价格,正好一百文。
接着,县令又拿出一百文钱,仍要一百只鸡,只是公鸡、母鸡和小鸡的数目不能和这次一样。
张公回家,在约定的时间内,又送来八只公鸡、十一只母鸡和八十一只小鸡,共一百只鸡。
县令一算,仍是分文不差。
这一下,县令来了兴致,再拿出一百文钱,买一百只鸡,公鸡、母鸡、小鸡数则要和头两次都不一样。
数学经典问题
数学经典问题
数学经典问题包括鸡兔同笼问题、百鸡百钱问题、公主选驸马问题、李白喝酒问题、托尔斯泰割草问题、韩信点兵问题、木匠建房问题等。
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万次相比,仅为原来的万分之七,有重大改进。
百钱买百鸡实验报告
一、题目描述我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?二、解题思路对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语言的编程语法规则熟悉了许多,虽然在运行过程中出现了一些错误,但也都能够较快地解决,第一次的数据结构实验作业总体完成的还算比较顺利。
C语言百钱买百鸡问题
C语言百钱买百鸡问题(我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?题目分析如果用数学的方法解决百钱买百鸡问题,可将该问题抽象成方程式组。
设公鸡x 只,母鸡y 只,小鸡z 只,得到以下方程式组:A:5x+3y+1/3z = 100B:x+y+z = 100C:0 <= x <= 100D:0 <= y <= 100E:0 <= z <= 100如果用解方程的方式解这道题需要进行多次猜解,计算机的一个优势就是计算速度特别暴力并且无怨无悔,所以我们可以欺负她、蹂躏她!因此我们用穷举法的方式来解题,需要101^3 次猜解,但对于计算机来说,小CASE!代码清单:1.#include<stdio.h>2.3.int main()4.{5.int i, j, k;6.7.printf("百元买百鸡的问题所有可能的解如下:\n");8.9.for( i=0; i <=100; i++)10.for( j=0; j <=100; j++)11.for( k=0; k <=100; k++)12.{13.if(5*i+3*j+k/3==100&& k%3==0&& i+j+k==100)14.{15.printf("公鸡 %2d 只,母鸡 %2d 只,小鸡 %2d 只\n", i, j, k);16.}17.}18.19.return0;20.}运行结果:。
百钱百鸡问题的课程思政
百钱百鸡问题的课程思政百钱百鸡问题是一个经典的数学问题,而在课程思政的背景下,我们可以将这个问题与社会主义核心价值观、中华优秀传统文化等相结合,引导学生树立正确的价值观和世界观。
一、引入首先,教师可以简要介绍百钱百鸡问题的背景和起源,强调这是一个源自中国古代的数学问题,体现了中华民族的智慧和创造力。
同时,教师可以引导学生思考这个问题的现实意义,如公平交易、诚信经营等。
二、问题分析接下来,教师可以引导学生分析百钱百鸡问题。
这个问题要求用100文钱买100只鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡1文钱三只。
通过分析,学生可以发现最优解是买20只公鸡、25只母鸡和55只小鸡,正好用完100文钱。
三、思政元素融入在这个过程中,教师可以结合社会主义核心价值观,引导学生认识到诚信、公正、友善等价值观念在解决这个问题中的体现。
例如,公鸡、母鸡和小鸡的价格设置体现了公平交易的原则;最优解的寻找则体现了勤劳智慧和创新精神;同时,这个问题的解决也需要学生们友善合作,互相交流。
四、中华优秀传统文化融入教师还可以结合中华优秀传统文化,引导学生思考这个问题的文化内涵。
例如,这个问题体现了中国古代的数学智慧和商业文化,是中国古代人民勤劳智慧的结晶。
通过学习这个问题,学生可以更加深入地了解中华优秀传统文化的内涵和价值。
五、课堂总结最后,教师可以对本节课进行总结。
通过解决百钱百鸡问题,学生不仅学习了数学知识和方法,更是在潜移默化中接受了社会主义核心价值观和中华优秀传统文化的熏陶。
希望学生们在未来的学习和生活中,能够将这些价值观念内化为自己的行为准则,为实现中华民族伟大复兴贡献自己的力量。
百钱百鸡问题的课程思政
百钱百鸡问题的课程思政百钱百鸡问题是一个经典的数学问题,也是一个生活中常见的实际问题。
它是一个启发思考的问题,通过解决这个问题,可以培养学生的逻辑思维能力和实际问题解决能力,同时也能从中引发对社会分配公平性的思考。
在课程思政中,我们可以通过讨论百钱百鸡问题,引导学生思考社会的公平性和资源分配的合理性等问题。
下面我们来详细探讨一下。
首先,百钱百鸡问题是一个关于资源分配的问题。
问题中要求用100枚铜钱购买100只鸡,母鸡5枚钱一只,公鸡3枚钱一只,小鸡1枚钱三只。
这个问题实际上暗含了资源的合理利用、优化分配的思维方式。
在具体解题过程中,学生需要通过巧妙的分析和计算,找到一种最优的资源分配方案,使得100元钱既购买了100只鸡,又最大程度上发挥了资源的利用效益。
从而,课后可延伸提问学生们可以探索百钱买100只兔子的问题,或放宽限制提高一些的情况下会有怎样的变化。
这样呢,就能够引导学生思考资源分配的公平性和效率性问题,激发他们在未来面临类似问题时的分析和解决能力。
另外,百钱百鸡问题也可以引发学生对社会公平性的思考。
在问题中,母鸡、公鸡和小鸡的价格不同,这涉及到物价和资源分配的问题。
对于学生来说,通过解决这个问题不仅可以锻炼他们的数学运算能力,还可以引导他们思考社会资源的分配是否存在公平性问题。
他们可以思考,为什么母鸡的价格比公鸡贵呢?为什么小鸡的价格比母鸡还低呢?这背后是否存在某种具体的原因或者规律?这样一来,不仅能加深学生对数学知识的理解,还可以拓展他们的思维广度,使他们在思考社会问题时更加全面和综合。
最后,百钱百鸡问题还可以启发学生对资源利用的节约性思考。
在问题中,我们要通过合理的购买方式,最大限度地利用有限的资金购买最多的鸡。
这就要求学生具备节约资源的意识和能力。
我们可以引导学生思考,如果不计成本,购买100只鸡的方式会发生怎样的变化?如果同时考虑成本和效益,应该如何制定购买计划?通过这样的探讨,可以培养学生的节约意识和资源管理能力,让他们在日常生活中更加注重资源的合理利用。
百钱买百鸡问题
百钱买百鸡问题Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 1120 Solved: 161[Submit][Status][Web Board]Description“百钱买百鸡”是我国著名的古代数学问题,中国古代数学家张丘建在他的《算经》中提出了这样一个问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?你的任务是求解下面这个问题。
问题是这样描述的:a文钱可买一只公鸡,b文钱可买一只母鸡,c文钱可买d只小鸡。
用m文钱买n只鸡,那么有公鸡x只、母鸡y只、小鸡z只。
求解出符合题意的x,y,z。
Input输入为一张表。
第一行是一个固定不变的表头,格式见sample。
后面有多行,每行为一组测试数据。
每组测试数据由6个整数组成,分别为“a,b,c/d,m,n”。
满足0<a,b,c,d<=50,50<=m,n<=108+1,并且母鸡和小鸡的单价不会相同。
Output每组测试数据的运行结果输出为一张表,表头固定为“COCKS,HENS,CHICKS”。
每组测试数据的一个可行解数出为一行,为三个整数:“x,y,z”。
多组解按照公鸡数从少到多的顺序输出。
若测试数据无解则输出“Cannot buy!”。
两组测试数据之间用一个空行分隔开。
Sample InputCOCK,HEN,CHICK,MONEY,CHICKS 3,2,1/3,100,1005,3,1/3,100,1008,5,1/7,100,1008,5,1/7,300,300Sample OutputCOCKS,HENS,CHICKS0,40,605,32,6310,24,6615,16,6920,8,7225,0,75COCKS,HENS,CHICKS0,25,754,18,788,11,8112,4,84Cannot buy!COCKS,HENS,CHICKS8,40,252HINT本题重点在于了解多重循环的运行效率问题,减少一层循环可以降低很大规模的运算量。
第五节拓展资源-百银百牛和百钱百鸡
“百银百牛”与“百钱百鸡”问题【百牛问题】相传,清代的嘉庆皇帝是一位趣味数学的爱好者,他常常喜欢做一些动脑筋的数学题。
有一天,一位大臣陪他在花园里散步。
表面上正在赏花的嘉庆皇帝忽然转身问道:“大牛每头10两银子,小牛每头5两银子,牛犊子(刚出生不久的小牛)每头半两银子,今有100两银子,要买100头牛,不余银子不欠钱,你知道如何个买法吗?”这位大臣听了,一时间不知如何回答,于是愁眉苦脸回到家,他刚刚考中举人的儿子听说了此事,便在父亲耳边细语了一番。
第二天,大臣便得意地回复结果:“可买大牛1头,小牛9头,牛犊子90头,正好不余不欠。
”皇帝很惊奇就问究竟,这才知道是大臣之子巧思所得,于是传旨特赐大臣之子为进士,并选入翰林。
就这样,解一道难题入翰林,成为一则有趣的历史传说。
那么,就这道“百两银子买百牛”的怪题究竟是如何解答的呢?原来,大臣之子先假定没有大牛,因为,1头小牛值5两银子,8头牛犊子值4两银子,所以得9两银子可买9头牛(1小牛+8牛犊)。
由此可知,100两银子能买小牛100/9(头),牛犊子800/9(头)。
再通过计算得出9头大牛和10头牛犊子的价值与19头小牛价值相等,简记成9大+10犊=19小,简化得1大+10/9犊=19/9小,换句话说,就是增加1头大牛和10/9头牛犊子,与减少19/9头小牛等同,此时就有:大牛1头;小牛100/9-19/9=9(头);牛犊子800/9+10/9=90(头)。
如果我们运用数学奥林匹克中的不定方程知识来求解,解答就相当简洁容易接受。
设大牛、小牛、牛犊各有X、Y、Z只,则根据题意,有因为X是整数,所以100-9Y=应是19的倍数才满足题意,即100-9Y 可能是19,38,57,76,95。
下面就根据Y也是整数进行筛选,不难发现只有100-9Y=19时,Y才有整数解,所以Y=(100-19)÷9=9,则X=1,Z=100-9-1=90。
【百鸡问题】公鸡每只值五文钱,母鸡每只值三文钱,小鸡每三只值一文钱。
PYTHON中百钱买百鸡问题
PYTHON中百钱买百鸡问题PYTHON中百钱买百鸡问题问题:中国古代数学家张丘建在他的《算经》中提出了⼀个著名的“百钱买百鸡问题”:鸡翁⼀,值钱五;鸡母⼀,值钱三;鸡雏三,值钱⼀;百钱买百鸡,问翁、母、雏各⼏何?在PYTHON中编程实现将所有可能的⽅案输出。
问题分析:根据题意设公鸡、母鸡和雏鸡分别为cock,hen和biddy,如果100钱全买公鸡,那么最多能买20只,所以cock的范围是⼤⼩等于0⼩于等于20;如果全买母鸡那么最多能买33只,所以hen的范围是⼤于等于0⼩于等于33;如果100钱全买⼩鸡,那么根据题意最多能买99只(⼩鸡的数量应⼩于100且是3的倍数)。
在确定了各种鸡的范围后进⾏穷举并判断,判断的条件有以下3种:(1)、所买的三种鸡的钱数总和为100;(2)、所买的三种鸡的数量之和为100;(3)、所买的⼩鸡的数量必须是3的倍数。
程序代码:for cock in range(0,20+1): #鸡翁范围在0到20之间for hen in range(0,33+1): #鸡母范围在0到33之间for biddy in range(3,99+1): #鸡雏范围在3到99之间if (5*cock+3*hen+biddy/3)==100:#判断钱数是否等于100if (cock+hen+biddy)==100: #判断购买的鸡数是否等于100if biddy%3==0: #判断鸡雏数是否能被3整除print ("鸡翁:",cock,"鸡母:",hen,"鸡雏:",biddy) #输出程序运⾏结果:鸡翁: 0 鸡母: 25 鸡雏: 75鸡翁: 4 鸡母: 18 鸡雏: 78鸡翁: 8 鸡母: 11 鸡雏: 81鸡翁: 12 鸡母: 4 鸡雏: 84。
- 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只。