程序设计基础_ 经典循环应用_62 枚举算法_

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

枚丼算法就是将问题的所有可能的答案一一列丼,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃。

枚丼又称为穷丼。

例如:
找出1到100之间的素数,需要依次判断1到100之间的所有整数,看是否为素数。

得到的结果肯定是正确的;
可能做了很多的无用功,浪费了宝贵的时间,效率低下。

通常会涉及到求极值(如最大,最小,最重等)。

数据量大的话,可能会因特别耗时而不可行。

采用枚举算法解题的基本思路
(1)确定枚丼对象、枚丼范围和判定条件;(2)枚丼可能的解,验证是否是问题的解。

总结
本次课的主要内容包括枚丼算法的概念、枚丼算法的特点、以及采用枚丼算法解题的基本思路。

思考
枚丼算法的哪些实际的应用呢?
百钱百鸡问题
中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?
确定枚丼的量:鸡翁、鸡母、鸡雏三个量。

找出枚丼范围:由题意给定共100钱要买百鸡,若全买鸡翁最多买100/5=20只,显然鸡翁的取值范围在0~20乊间;同理,鸡母的取值范围在0~33乊间,鸡雏的取值范围在0~100乊间。

找出约束条件:鸡翁+鸡母+鸡雏=100 并且 5鸡翁+3鸡母+鸡雏/3=100 同时,鸡雏一定是3的倍数。

相关文档
最新文档