百鸡百钱问题解题技巧
“百鸡问题”及其衍生问题
“百鸡问题”及其衍生问题作者:***来源:《中学数学杂志(初中版)》2021年第03期1 百鸡问题简介所谓百鸡问题,是指下面这道中国古代数学题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一.凡百钱,买鸡百只.问鸡翁、母、雏各几何?用现在的语言表述就是:公雞5元1只,母鸡3元1只,小鸡1元3只.用100元钱买100只鸡.问公鸡、母鸡、小鸡各买多少只?百鸡问题是《张丘建算经》中的最后一题.张邱建,北魏清河(今河北邢台市清河县)人,是公元5世纪著名的大数学家.《张丘建算经》成书于公元466年到公元485年之间,现传本有92个问题.该书在最大公约数与最小公倍数的计算、不定方程的求解以及等差数列相关问题的求解等方面,具有独到的见解.百鸡问题是《张邱建算经》中的一个世界著名的不定方程问题.该书给出了这个问题的三组解:(1)公鸡4只,母鸡18只,小鸡78只;(2)公鸡8只,母鸡11只,小鸡81只;(3)公鸡12只,母鸡4只,小鸡84只.自张邱建以后,中国数学家对百鸡问题的研究从来没有间断过,百鸡问题几乎成了不定方程的代名词,从宋代到清代围绕百鸡问题的数学研究取得了许多成就.百鸡问题不仅在中国几乎尽人皆知,而且在国外也有较大影响.2 百鸡问题的解法关于百鸡问题的解法,《张丘建算经》中只提到:“鸡翁每增四,鸡母每减七,鸡雏每益(增加)三,即得.”但他并没有给出更具体的解法.现在我们通过解不定方程的方法来求出这个问题的解.3 与百鸡问题相关的一些问题在《张丘建算经》之后,出现了许多与百鸡问题相类似的问题,其中有些问题是后人自行编拟出来的,而有些问题却有明显的改变痕迹.现在我们挑选出其中的几例,与读者共同分享.1.“百人搬砖”问题(选自《趣味歌词古体算题选》,作者:潘有发,台湾九章出版社1995年出版).百人搬百砖,男子一搬八,妇女一搬三,小孩三搬一.请问各几人,各搬几块砖?不准列方程,不准用比例,只许用心算,看谁算得快!参照百鸡问题的解法,运用不定方程当然可以求解这个问题,但题目要求我们“用心算”.根据已知条件我们可以进行如下分析:一个男人比一个女人多搬5块砖;三个女人比三个小孩多搬8块砖.因为人数和砖数都必须是正整数,所以,应该先从小孩算起,小孩的人数应该是3的倍数.假设小孩有90人(也可以设小孩有60人,75人,87人等,只要是3的倍数即可,然后再逐一否定),搬砖30块,那么剩下70块要由10人来搬.若这10人都是女人,则只能搬30块,此时剩下的40块砖无人搬.因为每个男人比每个女人多搬5块,所以,只要把其中的8个女人对换成男人,则剩下的40块砖恰好分给8个男人搬.所以,该问题的答案是:男人8人,每人搬8块砖,共搬砖64块;女人2人,每人搬3块砖,共搬砖6块;小孩90人,每3人搬1块砖,共搬砖30块.2.“千钱百鸡”问题(选自程大位原著,梅毂成编《增删算法统宗》).今有千文买百鸡,五十雄价不差池,草鸡每个三十足,小者十文三个知.用现在的语言表述就是:现有1000元钱去买100只鸡,公鸡每只50元,母鸡每只30元,小鸡3只10元.问公鸡、母鸡、小鸡各买多少只.这道题与百鸡问题没有本质区别,只是钱的总数与每种鸡的价钱都增加到原来的10倍.仿照百鸡问题,通过解不定方程可得三组解:公鸡4只,母鸡18只,小鸡78只;公鸡8只,母鸡11只,小鸡81只;公鸡12只,母鸡4只,小鸡84只.3.“百马百瓦”问题.一百匹马驮一百块瓦,大马驮三块瓦,小马驮两块瓦,两个马驹驮一块瓦.问大马、小马、马驹各几匹?五十多年前,笔者读小学时,先父就曾经给我出过这道题,但具体出处不太清楚.设大马x匹、小马y匹、马驹z匹,根据已知条件有方程组: x+y+z=100,3x+2y+12z=100.解这个不定方程可得下面6组解:4.“和尚几人”问题(选自程大位《算法统宗》).一百馒头一百僧,大僧三个更无争.小僧三人分一个,大小和尚各几丁.“和尚几人”问题比百鸡问题少了一个条件,从而使得其解法也简单许多.通过求解一个一元二次方程,就可以很容易地求出答案来.程大位在《算法统宗》中曾经给出一个不用方程的漂亮解法.其解法如下:因为1个大和尚吃3个馒头,3个小和尚吃1个馒头,所以,1个大和尚和3个小和尚共吃4个馒头.把1个大和尚和3个小和尚看成一组,100个和尚共分为25组.由于每组有1个大和尚和3个小和尚,因此25组有25个大和尚,75个小和尚.5.“百钱买百牛”问题.据传,清代嘉庆皇帝曾仿照“百鸡问题”编了一道“百牛问题”给大臣们做:有银百两,买牛百头,大牛一头十两,小牛一头五两,牛犊一头半两.问大牛、小牛和牛犊各买多少头?答案:买大牛1头,小牛9头,牛犊90头.6.“几人吃饭”问题.在马克思的《数学手稿》中有一个与百鸡问题类似的问题,就是下面这个“几人吃饭”问题:有30个人,其中有男人、女人和小孩,在一家小饭馆吃饭花了50先令.每个男人花3先令,每个女人花2先令,每个小孩花1先令.问男人、女人和小孩各多少人?仿照百鸡问题,通过解不定方程可得下面9组解:观察上面的“百鸡问题”“千钱百鸡问题”“百马百瓦问题”和“几人吃饭问题”的答案不难发现,在每一个问题的所有答案中,x的值所构成的数列是一个等差数列;同样,y的值所构成的数列和z值所构成的数列也都是一个等差数列.与百鸡问题相关的问题,当然不止上面所罗列的这些.要想进一步了解更多的问题,读者可以查阅相关的资料;如果有兴趣,也可以自行编拟一些与之相关的问题.不论是自行求解,还是在课余时间与朋友交流、探讨,都是一件很有意义的事情.参考文献[1]徐品方,徐伟.古算诗题探源[M].北京:科学出版社,2008.9作者简介司志本(1959—),男,河北兴隆人,教授.曾被授予河北省优秀教师,获国家曾宪梓教育基金会教师奖;有170余篇数学论文发表.。
多种解法求百钱百鸡问题
学号: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.结束,程序输出结果后退出。
“百鸡问题”的简单解法
“百鸡问题”的简单解法“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。
凡百钱买鸡百只。
问鸡翁母雏各几何?”翻译过来是: 1只公鸡值 5 文钱,1只母鸡值3文钱,3只小鸡才值1文钱。
现在用100文钱买100只鸡,问公鸡、母鸡、小鸡各有多少只?这就是我国古代数学名著《张丘建算经》里的一个题目,也被称为有趣的“百鸡问题”。
谈到“百鸡问题”,就要说一说我国古代数学家张丘建小时候的故事。
“相传在南北朝时期(公元 386 年——公元 589 年),我国北方出了一个“神童”,他反映敏捷,计算能力超群,许多连大人一时也难以解答的问题,他一下子就给算出来了。
远近的人都喜欢找他计算数学问题。
“神童”的名气越来越大,传到当时宰相的耳中。
有一天,宰相为了弄清“神童”是真是假,特地把“神童”的父亲叫了去,给了他 100 文钱,让第二天带 100 只鸡来。
并规定 100 只鸡中公鸡、母鸡和小鸡都要有,而且不准多,也不准少,一定要刚好百钱百鸡。
当时,买 1 只公鸡 5 文钱,买 1 只母鸡 3 文钱,买 3 只小鸡才 1 文钱。
怎样才能凑成百钱百鸡呢?“神童”想了一会,告诉父亲说,只要送 4 只公鸡、 18 只母鸡和 78 只小鸡就行了。
第二天,宰相见到送来的鸡正好满足百钱百鸡,大为惊奇。
他想了一下,又给了 100 文钱,让明天再送 100 只鸡来,还规定不准只有 4 只公鸡。
这个问题也没有难住“神童”。
他想了一会,叫父亲送 8 只公鸡、 11 只母鸡和 81 只小鸡去。
还告诉父亲说,遇到类似问题,只要怎样怎样就行了。
第二天,宰相见到了送来的 100 只鸡,赞叹不已。
他又给了 100 文钱,要求下次再送 100 只鸡来。
岂料才一会儿,“神童”的父亲就送来了 100 只鸡。
宰相一数:公鸡 12 只、母鸡 4 只、小鸡 84 只,正好又满足百钱百鸡。
”这个“神童”就是张丘建,后来经过自己的勤奋学习,成为一个著名的数学家。
那么张丘建是怎样算出这三种结果的呢?此题用“鸡兔同笼”的假设法,确实有些复杂,但也能解得出。
百钱买百鸡解题思路数学
百钱买百鸡这个题目是一个著名的数学难题,它要求用一百个钱币购买一百只鸡,其中公鸡x只,母鸡y只,小鸡z只,且x+y+z=100,且5x+3y+z/3=100。
使用现代计算机技术的优势,可以通过暴力穷举来解决这个问题。
小朋友也可以在Scratch编程中,通过引入变量和穷举法来实现这一过程。
首先,设置三个变量x、y和z,它们分别代表公鸡、母鸡和小鸡的数量。
设置一个计数器,用于显示穷举的执行时间。
然后,开始穷举。
从x的最小值开始,即0,依次增加到最大值,即100/5,检查是否满足x+y+z=100。
如果满足,继续检查是否满足5x+3y+z/3=100。
如果都满足,则表示找到了一个解。
在穷举过程中,可以使用计时器显示穷举的执行时间,以便学生了解求解过程的耗时情况。
最后,输出找到的所有解,包括公鸡、母鸡和小鸡的数量。
这些解可能有四种情况:公鸡0只,母鸡25只,小鸡75只;公鸡4只,母鸡18只,小鸡78只;公鸡8只,母鸡11只,小鸡81只;公鸡12只,母鸡4只,小鸡84只。
通过这种方式,可以使用Scratch编程解决这个数学难题,并且通过计时器显示执行时间,了解求解过程的耗时情况。
例9-8 百钱买百鸡问题——一百个铜钱买了一百只鸡,其中公鸡
例 9-8 百钱买百鸡问题——一百个铜钱买了一百只鸡,其中公鸡一只 5 钱、母鸡一只 3 钱,小鸡一钱 3 只,问一百只鸡中公鸡、母鸡、小鸡各多少)。
4.1 z=1 4.2 是否满足百钱,百鸡
4.2.1 满足,输出最终百钱买到的百鸡的结果 4.2.2 不满足,不做处理 4.3 变量增加,这里注意步长为 3 流程图
版权所有:东北大学计算中心
开始 定义x,y,z
x<=20?
N
Y N
y<=33?
Y
N
z<=99?
Y
百钱和百鸡?
N
Y
输出百鸡 的结果
结束
图 5-8 程序执行流程图
版权所有:东北大学计算中心
这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为 x,y,z,问题化为三 元一次方程组:
5x 3y z / 3 100(百钱)
x
y
ห้องสมุดไป่ตู้
z
100(百鸡)
这里 x,y,z 为正整数,且 z 是 3 的倍数;由于鸡和钱的总数都是 100,可以确定 x,y,z 的取值范围:
1) x 的取值范围为 1~20 2) y 的取值范围为 1~33 3) 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 的细化
百钱百鸡问题
百鸡问题
公元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万次相比,仅为原来的万分之七,有重大改进。
趣题巧解-《张邱建算经》“百鸡问题”
趣题巧解-《张邱建算经》百鸡问题
古代《张邱建算经》中的百鸡问题是一道很有名的算题。
题目内容是:用100元买100只鸡,大公鸡5元1只,母鸡3元1只,小鸡1元3只。
问各能买多少只?想:把三种鸡的只数分别设为未知数x、y、z,然后利用总只数、总钱数两个条件,列出两个方程,根据鸡的只数必须取整数的要求,一步一步推出各种鸡的只数。
解:设大公鸡x只,母鸡y只,小鸡z只。
根据题意,得把③式代入①式z+y+6x+3y=100得 x2=8y3=18把x、y的解代入③式得答:买大公鸡12只,母鸡4只,小鸡84只;或买大公鸡8只,母鸡11只,小鸡81只;或买大公鸡4只,母鸡18只,小鸡78只。
九章算术中的十大经典问题
九章算术中的十大经典问题九章算术是中国古代数学的重要著作之一,其内容涵盖了算术、代数、几何等多个领域,对中国古代数学的发展产生了深远的影响。
其中,九章算术中的十大经典问题是中国古代数学中的经典之作,这些问题不仅在古代有着广泛的应用,而且在现代数学中也有着重要的地位。
本文将对九章算术中的十大经典问题进行详细的介绍和分析。
一、两舍弃一“两舍弃一”是九章算术中的第一大问题,其内容为:“今有雉兔同笼,上有三十五头,下有九十四足。
问雉兔各几何?”这个问题的解法是:设雉有x只,兔有y只,则有两个方程式:x+y=35,2x+4y=94。
通过解这两个方程式,可以得出雉有15只,兔有20只。
二、百钱买百鸡“百钱买百鸡”是九章算术中的第二大问题,其内容为:“鸡犬同笼,上有百头,下有百足。
问鸡几何?”这个问题的解法是:设鸡有x只,狗有y只,则有两个方程式:x+y=100,2x+4y=200。
通过解这两个方程式,可以得出鸡有50只,狗有50只。
三、五家渠“五家渠”是九章算术中的第三大问题,其内容为:“五家渠,田方百亩,一夫二亩,各自耕戍,相望而不相害,问可耕几何?”这个问题的解法是:设有x个人耕种,则有一个方程式:2x=100,解得x=50。
因此,五家渠可耕50亩。
四、举铁砣以十为斤,问几何?”这个问题的解法是:设铁砣重x斤,则有一个方程式:x/10=1,解得x=10。
因此,铁砣重10斤。
五、买麻布“买麻布”是九章算术中的第五大问题,其内容为:“买麻布,五丈余,割去一丈五尺,问剩几何?”这个问题的解法很简单,直接用五丈减去一丈五尺即可,即五丈减一丈五尺等于三丈五尺。
六、三斗鸡“三斗鸡”是九章算术中的第六大问题,其内容为:“三斗鸡,五方雉,七十二子,问鸡、雉、子各几何?”这个问题的解法是:设鸡有x只,雉有y只,子有z个,则有三个方程式:3x+5y+0.5z=72,x+y=8,z=72。
通过解这三个方程式,可以得出鸡有21只,雉有3只,子有72个。
小学奥数百鸡问题详解
小学奥数百鸡问题详解百鸡问题,现代数学用不定方程求解,在小学阶段,不少同学都是用拼凑的办法来解决。
这里介绍一种新方法,对小学生很适用《张丘建算经》中有这样一题:公鸡每只值5文钱,母鸡每只值3文钱,小鸡每3只值1文钱。
现在用100文钱买100只鸡,公鸡、母鸡、小鸡各有多少只?这是中国古代算术中的一类典型问题百鸡问题,现代数学用不定方程求解,在小学奥数题解题中,不少同学都是用拼凑的办法来解决。
这里介绍一种新方法,对小学生很适用。
1、求倍数。
每只公鸡值5文钱,每只母鸡值3文钱,每只小鸡值1/3文钱。
以最便宜的小鸡为标准,公鸡和母鸡的价格分别是小鸡的51/3=15倍和31/3=9倍。
2、算超额。
假设100文钱全部买小鸡,可买1001/3=300只,超出实有三种鸡总数300-100=200只。
3、组等式。
由于公鸡置换成小鸡可多出自身只数的15-1=14倍,母鸡置换成小鸡可多出自身只数的9-1=8倍。
不难理解,上述假设中多出的200只即为公鸡和母鸡置换成小鸡后一共增加的只数,关系式为:公鸡只数14+母鸡只数8=200.4、试结果。
一般来说,不定方程的正整数解按关系式就可以观察得到。
我们也可以先把等式变形,观察起来更为容易。
方法是,在等式两边同时除以一个相同的数(0除外),得到等式右边为整数,左边只有一项系数是分数的形式。
在上式两边同时除以8,得到:公鸡只数7/4+母鸡只数=25.显然,公鸡只数必须是4的倍数。
这样,从4 起,依次用4的倍数去试算,可以得出三种情况:公鸡4只,母鸡18只,小鸡78只;或公鸡8只,母鸡11只,小鸡81只;或公鸡12只,母鸡4只,小鸡84只。
下面再举一例来验证。
大数学家欧拉曾提出过这样的问题:一头猪321(31 2)银币,一只山羊131(11 3)银币,一只绵羊21(1/2)银币。
有人用100个银币,买了100头牲畜。
问:猪、山羊、绵羊各多少?猪的单价是绵羊的31 21/2=7倍,山羊的单价是绵羊的11 31/2=22 3倍,猪和山羊分别置换成绵羊,可多出自身只数的7-1=6倍和22 3-1=12 3倍。
例9-8 百钱买百鸡问题——一百个铜钱买了一百只鸡,其中公鸡
4.2.1 满足,输出最终百钱买到的百鸡的结果 4.2.2 不满足,不做处理 4.3 变量增加,这里注意步长为 3 流程图
版权所有:东北大学计算中心
开始 定义x,y,z
x<=20?
N
Y ;=99?
Y
百钱和百鸡?
N
Y
输出百鸡 的结果
结束
图 5-8 程序执行流程图
分析
版权所有:东北大学计算中心
程序运行结果如下: cock=4,hen=8,chicken=78 cock=8,hen=11,chicken=81 cock=12,hen=4,chicken=84 对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后, 小鸡数就定了,即 z 100- x - y 。请同学们自己分析二重循环和三重循环的运行次数,做为 练习自己调试这一方法。
版权所有:东北大学计算中心
程序代码如下 #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); } } } }
5x 3y z / 3 100(百钱)
x
y
z
100(百鸡)
算法经典问题系列1百钱买百鸡问题
算法经典问题系列1 百钱买百鸡问题一说起唐朝,人们就会情不自禁地想起诗歌,绝对没有人会提到数学在数学上,虽说唐代并没有产生与其前的魏晋南北朝或其后的宋元相媲美的大师,却在数学教育制度的确立和数学典籍的整理方面有所建树.长达近三百年的唐代在数学方面最有意义的事情莫过于《算经十书》的整理和出版,这是高宗李治下令编撰的。
除了《周牌算经》《九章算术》《海岛算经》和《缀术》以外,《算经十书》中至少还有三部值得一提,分别是《孙子算经》《张丘建算经》和《缉古算经》'这三部书的共同特点是,每一部都提出了一个非常有价值的问题,并以此传世。
《张丘建算经》成书于公元5世纪,作者是北魏人.书中最后一道题堪称亮点,通常也被称为"百钱买百鸡"问题,民间则流传着县令考问神童的佳话书中原文如下:今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买鸡百只,问鸡翁、母、雏各几何?题目的意思是,公鸡5文钱1只,母鸡3文钱1只,小鸡1文钱买3只,现在用100文钱共买了100只鸡,问:在这100只鸡中,公鸡、母鸡和小鸡各是多少只?(设每种至少一只)算法分析:此题很显然是用枚举法,我们以三种鸡的个数为枚举对象(分别设为x,y,z),以三种鸡的总数(x+y+z)和买鸡用去的钱的总数(x*3+y*2+z)为判定条件,穷举各种鸡的个数。
枚举法,常常称之为穷举法,是指从可能的集合中一一枚举各个元素,用题目给定的约束条件判定哪些是无用的,哪些是有用的。
能使命题成立者,即为问题的解。
1.采用枚举算法解题的基本思路:2.确定枚举对象、枚举范围和判定条件;3.一一枚举可能的解,验证是否是问题的解下面是解这个百鸡问题的程序var x,y,z:integer;begin for x:=1 to 100 do for y:=1 to 100 do for z:=1 to 100 do if(x+y+z=100)and(x*5+y*3+z/3=100)then writeln('x=',x,'y=',y,'z=',z);{验证可能的解,并输出符合题目要求的解}end.这个算法学生容易想到,而重复是计算机的拿手好戏,算法可读性好。
100元买100只鸡公鸡的奥数题
100元买100只鸡公鸡的奥数题
这个题目可以使用代数方程来解决。
假设鸡的价格为x元每只,我们可以得到以下两个方程:
1. 鸡的数量 + 公鸡的数量 = 100 (总数量等于100只)
2. 鸡的价格 * 鸡的数量 + 公鸡的价格 * 公鸡的数量 = 100 (总价格等于100元)
根据第一个方程可以得到:公鸡的数量 = 100 - 鸡的数量
把第二个方程代入第一个方程可以得到:鸡的价格 * 鸡的数量+ 公鸡的价格 * (100 - 鸡的数量) = 100
化简这个方程可以得到:鸡的价格 * 鸡的数量 + 公鸡的价格 * 100 - 公鸡的价格 * 鸡的数量 = 100
再次化简这个方程可以得到:鸡的价格 * 鸡的数量 - 公鸡的价格 * 鸡的数量 = 公鸡的价格 * 100 - 100
提取公因式得到:(鸡的价格 - 公鸡的价格) * 鸡的数量 = (公鸡的价格 - 1) * 100
因为题目中并没有提供鸡和公鸡的具体价格,所以我们暂且用变量a和b来表示鸡的价格和公鸡的价格。
得到方程:(a - b) * 鸡的数量 = (b - 1) * 100
我们可以根据已知条件,通过试算或者代入等方法来解决这个方程。
公务员考试备考:百鸡问题
百鸡问题华图教育杨亚莉《张丘建算经》提出了一个不定问题,即世界数学史上著名的百鸡问题:“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。
凡百钱,买鸡百只。
问鸡翁、母、雏各几何?”在古人看来,可能属于一个比较难的问题,但是在我们学过不定方程后这个问题变得非常简单。
这种题目在我们考试中经常出现,属于比较重要的考点。
不定方程常用的解法为代入法、奇偶特性、整除特性、尾数特性等方法。
我们以最新的真题为例:(江苏2017a-66)•玩具厂原来每日生产玩具560件,用A、B两种型号的纸箱装箱,正好装满24只A型纸箱和25只B型纸箱。
扩大生产规模后该玩具的日产量翻了一番,仍然用A、B两种型号的纸箱装箱,则每日需要纸箱的总数至少是()A.70 只B.75 只C.77 只D.98 只解析:本题只告诉了箱子的多少并没有告诉每个箱子的容量,所以我们可以假设A型纸箱能装x个玩具,B型纸箱可装y个玩具,根据总个数,可以得出24x+25y=560,发现是一个不定方程,代入显然用不了,考虑因子法,25以及560均含有因子5,所以24x中必然含有因子5,可以选择的有5,10, 15等, 尝试,当x取5或10,均无整数解,所以考虑15,解得x=15,y=8,符合题意。
最后想要纸箱总数少,每个箱中玩具容量越大越好,560/15=74*,所以选B选项。
(江苏2017a-67)•某地遭受重大自然灾害后,A公司立即组织捐款救灾。
已知该公司有100名员工捐款,捐款额有300元、500元和2000元三种,捐款总额为36000元,则捐款500元的员工数是()A.11 人B.12 人C.13 人D.14 人解析:本题已知面额,但却不知道各自的人数,可以设未知数,给大家一个小技巧,尽量设面值比较大的人数,即2000元的有x人,500元的有y人,300元的有100-x-y人,根据总钱数可得2000x+500y+300 (100-x-y)=36000 ,整理为17x+2y=60 ,此时不用想其他的方法,能代入的时候直接代入是最简洁的方法,我们采取居中代入,优先选择C选项代入,x有整数解2,所以符合题意,本题选择C选项。
第十五节拓展资源-百钱百鸡和百元百畜解答比较
“百钱百鸡问题”和“百元百畜问题”解答比较张丘建是我国南北朝时期著名的数学家,他于公元5-6世纪所著的《张丘建算经》是后世通称的算经十书之一。
书中最后一个问题就是流传至今的“百钱百鸡”问题:今有鸡翁一,值钱伍;鸡母一,值钱三;鸡雏三,值钱一。
凡百钱买鸡百只,问鸡翁、母、雏各几何?用现在的语言解解释就是:公鸡每只值五文钱,母鸡每只值三文钱,小鸡每三只值一文钱。
现在用一百文钱买一百只鸡,问:一百只鸡中,公鸡、母鸡、小鸡各有多少只?该问题之所以饮誉海内外,是因为它导致了三元不定方程组,而张丘建是世界上第一个给出一题多解的人,他解算“百钱百鸡”问题的方法也是当时世界上最简捷先进的。
书中只有15个字的解法:“鸡翁每增四,鸡母每减七,鸡雏每益三,即得”。
原来张丘建是这样解答的,设公鸡、母鸡、小鸡各有x、y、z只,显然它们都是正整数,则根据题意,可得方程组先把x看成常数,这样可得为了得到整数解,令x=4t,可得一组解:x=4t, y=25-7t, z=75+3t,由于y=25-7t 中对t的限制,t只能取1,2,3三个值,可得三组解:公鸡有4只,母鸡18只,小鸡78只;公鸡有8只,母鸡11只,小鸡81只;公鸡有12只,母鸡4只,小鸡84只。
从这个结果就可看出张丘建“鸡翁每增四,鸡母每减七,鸡雏每益三”的解答奥妙。
无独有偶,瑞士著名数学家欧拉也曾研究过类似的问题。
这是因为欧拉非常重视方程,他写的《代数学原理》有许多关于方程的重要论述。
下面就是欧拉所出的一道“百元百畜”问题:某人用100元买了猪、山羊和绵羊共100只,其中猪7/2元一只,山羊4/3元一只,绵羊1/2元一只,问各买了多少只?这个问题与“百钱百鸡问题”极为相似,但晚了一千多年。
欧拉采用了“盲人法则”解答此题,这个“盲人法则”与张丘建解“百钱百鸡问题”的方法也很相似,现介绍如下:设猪、山羊和绵羊的数目分别是x,y,z,显然它们都是正整数,可得方程组:把x暂时看作常数移到符号右端,可得关于y和z的方程组:令x=5t,则x=5t, y=60-18t, z=40+13t,由于y=60-18t中对t的限制,t只能取1,2,3三个值,可得三组解:猪有5只,山羊有42只,绵羊53只;猪有10只,山羊有24只,绵羊66只;猪有15只,山羊有6只,绵羊79只。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
百鸡百钱问题解题技巧
百鸡百钱问题是一个经典的数学问题,它涉及到线性方程组的求解。
在这个问题中,有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 都是非负整数。
通过以上步骤,我们可以求解百鸡百钱问题。
需要注意的是,由于这是一个线性方程组问题,解可能有多个,因此需要验证解的合理性。