- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 枚举的概念 - perfect future perfect future ようこそ
?教学要求
了解枚举算法的概念与枚举设计要领
应用枚举求解统计求和、整数搜索、解方程与不等式、数式、数组、数列与数阵等基本案例
?本章重点
对某些枚举算法进行改进与优化
掌握枚举算法时间复杂度分析;2.1 枚举概述; 2. 枚举的框架描述; (2) 递增枚举
k=枚举起点
while(1)
{ k++; 运算操作序列;
if(约束条件)
{ printf(满足要求的解);
?return;
}
}; 3. 枚举的实施步骤; 2.2 统计与求和; 求和的精度并不高,只要设置双精实变量s,w实施累加即可。
设置j(1——n)循环枚举和式的每一项,设s的当前项为t,其后一项显然为
t=t/10+0.1*d;
加权和w的每一项在t的基础上乘加权系数j,即累加t*j。;2. 枚举设计描述; 对于给定的同码小数的和:
s(d,n)= 0.d+0.dd+0.ddd+…+0.dd…d
w(d,n)= 0.d+2×0.dd+3×0.ddd+…+n×0.dd…d
输入正整数d(1≤d≤9),n(1≤n10000),试精确求和s(d,n)与w(d,n)。
同时统计:在s(d,n)与w(d,n)的n个小数位中,共有多少个小数位s与w对应位的数字相同?;(1) 枚举设计要点;(2) 枚举设计描述;2.2.2 三角网格
对指定正整数n,试求n-三角网格中所有不同三角形(大小不同或方位不同)的个数,以及所有这些三角形的面积之和。
重点:
(1)分“正立”与“倒立”两类分别统计求和
(2)建立p数组简化求三角形面积之和的计算。
难点: 统计“倒立”三角形时,需对k分奇数与偶数两种情形分别总结规律并实施求和。; 2.3 整数搜索;2.3.2 基于s的双和数组;1. 枚举设计要点;2. 枚举设计描述; 2.4 解方程与不等式 ; 递增枚举设计要点:
对y从1开始递增1取值枚举,每一个y值计算a=n*y*y后判别:
若a+1不是平方数,则y增1后再试。
若a+1为某一整数x的平方,则(x,y)即为所求方程的解。因为y是从1开始递增的,所得解是方程的基本解。
对于某些非平方数n,方程的解位数大大超过计算机语言有效数字的范围,枚举不可能给出正确的解,因此算法中加了另一个结束算法的条件“x1000000000”(此结束条件可根据具体情形而定)。;2.4.2 分数不等式
案例提出:
试解以下关于正整数n的不等式
其中m为从键盘输入的正整数,式中符号为二个“+”号后一个“-”号,即分母能被3整除时符号为“-”。;(1) 设置条件循环,每三项一组累加求和:
s=s+1.0/k+1.0/(k+1)-1.0/(k+2); (k=1,4,…)
若累加到某一组时sm时退出循环,d=k+1, 可得区间解:n≥d.
因s(d+1)m,显然s(d)m;
而n=d+2时1.0/(n+3)为“+”,可得s(d+2)m;
以后各项中,“-”项小于其前面的“+”项,可知对于nd+2有s(n)m成立。
(2)在nd时是否有解,逐个求和检验确定离散解。
因而有必要回过头来,在n=1——d中一项项求和,得个别离散解。这一步不能省,否则出现遗解。;2. 枚举改进; 2.5 数式与运算;2.5.2 完美综合运算式
以下含乘方(a^b即为a的b次幂)、加、减、乘、除的综合运算式(1)的右边为一位非负整数f,请把数字0,1,2,...,9这10个数字中不同于数字 f 的 9个数字不重复地填入式(1)左边的9个□中,(约定数字“1”、“0”不出现在式左边的一位数中,且“0”不为首位),使得该综合运算式成立
□^□+□□÷□-□□□×□=f (1)
满足上述要求的式(1)称为完美综合运算式。
输入非负整数f(0≤f≤9),输出相应的综合运算式。; 尽管式中有a^b,可改进为整形处理,a^b用a自乘b次实现。
同时设置a,b,c,d,e循环,所有量设置在整数范围内枚举,式右数字f从键盘输入。
把运算式变形为z=(d*e+f-a^b)*c
对每一组f,a,b,c,d,e,按式(3)计算z。
检测z是否为二位数。若计算所得z非二位数,则返回。
然后分别对7个整数进行数字分离,设置g数组对7个整数分离的共10个数字进行统计,g(x)即为数字x(0—9)的个数。
若某一g(x)
您可能关注的文档
最近下载
- 基于SpringBoot的在线学习系统的设计与开发.doc
- 毕业设计(论文)-小型水稻联合收割机设计.doc
- 房地产 -22G101-1混凝土结构施工图平面整体表示方法制图规(现浇混凝土框架、剪力墙、梁、板).docx VIP
- 四方股份合作协议书(标准版).docx VIP
- ASME B16.9-2012_工厂制造的锻钢对焊管件(中文版).pdf
- 2025年汽车维修工技师(二级)职业技能鉴定考试题库资料(含答案).pdf
- 变压器油色谱、局放在线监测系统设计实施方案.docx VIP
- 饲料厂安全操作规程.pdf VIP
- 交通标识汇总(全).doc VIP
- 2025届湖北省建设投资集团有限公司校园招聘124人笔试参考题库附带答案详解.pdf
文档评论(0)