- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[数学]枚举法
基本算法——枚举法 技术教研组 谷方明 1 示例 求满足表达式A+B=C的所有整数解,其中A,B,C为1~3之间的整数。 例题分析 本题非常简单,即枚举变量A,B,C的所有可能取值情况,对每种取值情况判断是否符合表达式即可。 算法如下 for(int A=1;A=3;A++) for(int B=1;B=3;B++) for(int B=1;B=3;B++) if(A+B==C) 输出A,B,C; 枚举法的定义 所谓枚举法,指的是从可能的解的集合中一一枚举各元素,用题目给定的检验条件判定哪些是无用的,哪些是有用的。能使命题成立的,即为解。 示例中的解变量有3个:A,B,C。其中 解变量A的可能取值范围A∈{1, … ,3} 解变量B的可能取值范围B∈{1, … ,3} 解变量C的可能取值范围C∈{1, … ,3} 从而问题的可能解有3*3*3=27个,可能解集: (A,B,C)∈{(1,1,1),(1,1,2),(1,1,3),…,(3,3,1),(3,3,2),(3,3,3)} 在上述可能解集中,满足题目给定的检验条件(A+B==C)的解元素,即为问题的解。 枚举法的适用条件 对于可能确定解的值域又一时找不到其他更好的算法时可以考虑枚举法。 用枚举法求解的问题须满足两个条件 能确定解变量(枚举变量)的个数 n ; 每个解变量Ai(1 = i = n)的可能值能确定范围且能连续取得。 枚举法算法框架 设解变量的个数是n,Ai1—解变量Ai的最小值;Aik—解变量Ai的最大值(1≤i≤n),即A11≤A1≤A1k,Ai1≤Ai≤Aik,……,An1≤An≤Ank 算法框架如下(伪代码): for A1←A11 to A1k do for A2←A21 to A2k do …………………… for Ai←Ai1 to Aik do …………………… for An←An1 to Ank do if 状态(A1,…,Ai,…,An)满足检验条件 then 输出问题的解; 枚举算法的特点及优化 枚举法的特点是算法简单,但有时运算量大。 优化枚举算法(考察重点) 枚举算法的时间复杂度=状态总数*考察单个状态的耗时 排除明显不属于解集的元素 减少状态总数(即减少枚举变量和枚举变量的值域) 降低单个状态的考察代价 示例算法显然可以修改如下: for(int A=1;A=3;A++) for(int B=1;B=3;B++) { C=A+B; if(C=1)(C=3) 输出A,B,C; } 通过变量的依赖关系减少了解变量的个数(局部枚举),优化了枚举算法,n^3 - n^2。 枚举法解题的一般思路 对命题建立正确的数学模型; 根据命题确定的数学模型中各变量的变化范围(即可能解集); 利用循环语句、条件判断语句逐步求解或证明; 每一步都可以考虑优化 2 例1 巧妙填数 将1~9这九个数字填入九个空格中。每一横行的三个数字组成一个三位数。如果要使第二行的三位数是第一行的两倍, 第三行的三位数是第一行的三倍, 应怎样填数。(一共4组解,一组如下图) 本题目有9个格子,要求填数,如果不考虑问题给出的条件,共有9!=362880种方案,在这些方案中符合问题条件的即为解。因此可以采用枚举法。 但仔细分析问题,显然第一行的数不会超过400,实际上只要确定第一行的数就可以根据条件算出其他两行的数了。这样仅需枚举400次。(优化:解变量的依赖关系,也叫局部枚举) 例2 谁是第几名 在某次数学竞赛中, A、B、C、D、E五名学生被取为前五名。请据下列说法判断出他们的具体名次, 即谁是第几名? 条件1: 你如果认为A, B, C, D, E 就是这些人的第一至第五名的名次排列, 便大错。因为: 没猜对任何一个优胜者的名次。 也没猜对任何一对名次相邻的学生。 条件2: 你如果按D, A , E , C , B 来排列五人名次的话, 其结果是: 说对了其中两个人的名次。 还猜中了两对名次相邻的学生的名次顺序。 分析:本题是一个逻辑判断题,一般的逻辑判断题或推理题都采用枚举法进行解决。5个人的名次分别可以有5!=120种排列可能,因为120比较小,因此我们对每种情况进行枚举,然后根据条件判断哪些符合问题的要求。 根据已知条件,A1,B2,C3,D4,E5,因此排除了一种可能性,只有4!=24种情况了。(优化:减少了解变量的取值范围) 例3 古纸残篇 在一位数学家
您可能关注的文档
- [教育学]第一章 第一节 物质世界和实践2011.ppt
- [教育学]立体构成.ppt
- [教育学]第九章 回归分析.ppt
- [教育学]第九章 内容分析法.ppt
- [教育学]第三讲:第二章教育技术的发展历史.ppt
- [教育学]第九章 当代学校德育.ppt
- [教育学]第二章 数据类型和输入输出.ppt
- [教育学]第二章 人社会教育.ppt
- [教育学]第二章儿童心理发展与教育.ppt
- [教育学]第二章课程与教学论.ppt
- 法律硕士联考专业基础课(非法学)-21-2 .pdf
- 泰豪集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版完整版.docx
- 2024国培计划个人研修计划(6篇) .pdf
- 2024年陕西省宝鸡市公开招聘警务辅助人员辅警笔试自考练习卷一含.pdf
- 精选最新版2020年大学期末思想道德修养与法律基础完整考题库(含.pdf
- 2024年浙江省嘉兴市公开招聘警务辅助人员辅警笔试模拟自测题A卷含答.pdf
- 瑞西光华佳苑总包施工招标1204(定稿).doc
- 职业健康与防护详细讲解培训课件(11.1).doc
- 都溪河综合治理项目部月度报告(7月份 ) .doc
- 湖北恒大建设工程有限公司简介1.doc
最近下载
- 2021年香薰服务合同.docx
- 《Python与数据分析应用》课件——第10章 数据分析工具Pandas.pptx VIP
- 战争狂人希特勒简介.ppt
- 家庭教育指导师试题库.doc
- -司法鉴定人执业能力评估业务理论知识考试题库(司法鉴定人考试试题及答案解析)-.docx VIP
- 病房急产应急预案演练脚本.docx VIP
- 生产项目准入及预算标准第六册主网修理项目准入及预算标准(预算分册).docx
- 2025新人教版语文七年级下册《第一单元》大单元整体教学设计[2022课标].pdf
- 电子商务文案创意与撰写:直播脚本编写PPT教学课件.pptx
- (高清版)-B-T 30146-2023 安全与韧性 业务连续性管理体系 要求.pdf VIP
文档评论(0)