百鸡百钱问题及其算法分析

别妄想泡我
639次浏览
2021年02月19日 21:19
最佳经验
本文由作者推荐

-

2021年2月19日发(作者:仙姑顶)


百钱百鸡问题的最佳解决方案




(陕西师范大学计算机科学学院


10


级计科一班



西安



710062



摘要


:本文主要讨论百鸡百钱问题,


通常用蛮力法策略,< /p>


用枚举法表现,排除明显不合理情


况,列举出符合问题的解,分别 验证解的可行性,得到最优算法。



关键词:


蛮力法;枚举;百鸡百钱;



The money the chicken question the best solution


duan xi-juan, zhongmei, zhao shan-shan, zhao ya-wen


(School of Computer


Science, ,Shanxi Normol University, Xi’an 710062)



Abstact


:


In this article, we mainly discuss the chicken and the money problem. Usually use brute


force method strategy, with enumeration method performance, eliminate obviously unreasonable


situation, Enumerate conform to the problem solution, which verified the feasibility of the solution,


and get the optimal algorithm.



Keywords:


The brute force method;Enumeration;Hundred chickens money


1


引言



在求 解一个较小规模的问题时,可以根据问题中的约束条件把可能的情况一一列举出


来,然后 注意尝试从中找到满足约束条件的解,若该问题规模较大,符合条件的情况很多,


则需要 进一步考虑,排除一些明显不合理的情况,尽可能减少问题可能解的列举数目。



2


问题描述



百钱百鸡问题。


中国古代数学家张丘建在他的


《算经》中提出了 他的著名的


“百钱百鸡


问题”


:鸡翁一 ,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各


几何?



3


算法设计



根据问题中的约束条件将可能的情况一一列举出来,


但如果情况很多 ,


排除一些明显的


不会理的情况,尽可能减少问题可能解的列举 数目,然后找出满足问题条件的解。



1


)算法设计一


首先问题有三种不同的鸡,那么我们可以设鸡翁为


x


只,< /p>


鸡母为


y


只,鸡雏为

z


只。由


题意给出一共要用


100


钱买一百只鸡,


如果我们全部买鸡翁最多可以买


100



5=20


只,


显然


x


的取值范围是


1



20


之间;如果全部买鸡母最多可 以买


100



3



33


只,显然


y

< br>的取值范


围在


1



33


之间;如果全部买鸡雏最多可以买


100


×


3



300


只,可是题目规定是买


100


只,

< p>
所以


z


的取值范围是


1< /p>



100.


那么约束条件为:

< p>
x



y



z



100



5


×


x


3


×


y+100



3



100.


流程图如下:





开始



定义


x.y,z














结束





N


N


x<=20?


Y


N


y<=33?


Y


z<=99?


Y


百鸡百钱?



Y


输出结果



N




算法


1


程序运行结果截图




-


-


-


-


-


-


-


-