多种解法求百钱百鸡问题
学 号: 0121210680225
《算法设计与分析B》
大 作 业
题 目多种解法求百钱百鸡问题学 院计算机科学与技术学院专 业软件工程班 级Sy1201姓 名李安福
多种解法求百钱百鸡问题
摘要:中国古代数学家张丘建提出的“百钱买百鸡”可以采用蛮力法来解决。本文给出了百钱百鸡问题的描述,采用蛮力法来解决这个问题,并通过分析对算法进行了优化,进一步提高了解决此问题的效率。
关键字:枚举,执行效率,蛮力法,不定方程,循环变量。
1引言
蛮力法是一种简单直接地解决问题的方法,通常直接基于问题的描述和所涉及的概念定义。 这种方法经过很少的思考,把问题的所有情况或所有的过程交给计算机去一一尝试,从中找出问题的解。由于计算机运算速度快,在解决问题时可采用这种“懒惰”的策略。蛮力法的主要优点在于它是有广泛的适用性和简单性;它的缺点是大多数蛮力算法的效率都不高。
2问题概述
百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
3问题的分析
题目分析与算法设计这是一个古典数学问题我们假设公鸡、母鸡和小鸡的个数分别为x,y,z,那么买公鸡的钱数为5x,买母鸡的钱数为3y,买小鸡的钱数为z/3;再由题意,x,y和z的和为100,问题化为可三元一次方程组,该问题的数学模型如下:
这里x,y,z为正整数