- 3
- 0
- 约7.03千字
- 约 32页
- 2020-06-29 发布于湖北
- 举报
第一章 算法与程序设计概述;主要内容;2.1 穷举及其应用;穷举法的框架描述:
n=0;
for(k=区间下限;k=区间上限;k++)
/* 据指定范围实施穷举 */
if(约束条件) /* 据约束条件实施筛选 */
{ printf(满足要求的解); /* 输出解 */
n++; /* 统计解的个数 */
};【例2.2】统计分母在区间[a,b]的最简真分数(分子小于分母,且分子分母无公因数)共有多少个,并求最简真分数升序序列中的第k项(正整数a,b,k从键盘输入)。
算法设计:
为排序方便,设置数组c存储分子,数组d存储分母。真分数升序排序后的第k项为c(k)/d(k)。
在[a,b]内穷举分数i/j的分母j: a,a+1,…,b;
对每一个分母j穷举分子i: 1,2,…,j-1。
若分子i与分母j存在大于1的公因数,说明i/j非最简,忽略不计;否则赋值得一个最简真分数c(n)/d(n)。 数组下标n统计最简真分数的个数。应用冒泡法排序后即可打印出指定的第k项c(k)/d(k)。;【例2.3】 已知集合A定义如下:
1∈A,2∈A;x,y∈A = 2x+3y∈A
试求集合A元素从小到大排列的序列的前n项。
(1) 按第n项的大小循环设计
x,y可以是已产生的所有已有项中的任意两项,已产生项越多,递推生成的新项也就越多。
穷举循环变量k从3开始递增1取值,到第n项时k的终值尚无法确定,可约定一个较大的终值(例如10000)。
若k可由已有的项a(j),a(i) (ji)推得,即若k满足条件k=2*a[j]+3*a[i] 或 k=2*a[i]+3*a[j],说明k是a数列中的一项,赋值给a(t)。
当项数t达到规定项数n时,则退出穷举。;(2) 按项数循环设计
已知前2项,t循环从3开始递增1取值到指定的项数n。
第一项的值k从2开始递增取值,对每一个k取值,标记h=0赋值;
若k可由已有的项a(j),a(i) (ji)推得,即若k满足条件k=2*a[j]+3*a[i] 或 k=2*a[i]+3*a[j],说明k是a数列中的一项,赋值给a(t),同时标记h=1赋值。
对某项数t若h=0时,则t减1后循环,即对于原t使k增值后继续,直到达到规定项数n为止。;2.2.1 优选穷举对象
选择合适的穷举对象是穷举优化的首要条件。
【例2.4】 把一个6位整数分为前后两个3位数,若该数等于所分两个3位数和的平方,则称该数为6位分段和平方数。试求出所有6位分段和平方数。
(1) 对所有6位数穷举
(2) 对3位数穷举;大家有疑问的,可以询问和交流;2.2.2 优化穷举循环参量
优化穷举循环参量可减少无效循环,提高穷举效率。
【例2.6】 求解高斯八皇后问题。
在国际象棋的8×8方格的棋盘上如何放置8个皇后,使得这8个皇后不能相互攻击。
算法设计:
高斯八后问题的一个解用一个八位数表示,八位数解的第k个数字为j,表示棋盘上的第k行的第j格放置一个皇后。
两个皇后不允许处在同一横排,同一纵列,要求八位数中数字1—8各出现一次,不能重复。
因而解的范围区间应为87654321]。注意到数字1—8的任意一个排列的数字和为9的倍数,即数字1—8的任意一个排列均为9的倍数,因而穷举a循环的穷举范围定为87654321],其循环步长可定为9。; 2.2.3 精简穷举循环
精简一些不必要的循环,可大大提高穷举的效率。
【例2.7】 整币兑零求解。
计算把一张1元整币兑换成1分,2分,5分,1角,2角,5角共6种零币的不同兑换种数。
(1) 穷举设计求解
设面值为1,2,5,10,20,50单位零币的个数分别为p1,p2,p3,p4,p5,p6。设置穷举的6重循环。
(2) 精简穷举循环设计
在上述程序的6重循环中,我们可精简p1循环。
(3) 穷举设计的进一步优化
在循环设置中,p3循环从0—n/5可改进为0—(n-2*p2)/5。;2.3 回溯法及其描述;;2. 回溯算法框架描述
/* 输入正整数n,m,(n≥m) */
i=1;a[i]=元素初值;
while (1)
{ g=1;for(k=i-1;k=1;k--)
if( 约束条件1 ) g=0; /* 检测,不满足则返回 */
if(g 约束条件2)
printf(a[1-m]); /* 输出一个解 */
if(in g)
您可能关注的文档
- 硫化氢事故案例.ppt
- 离队入团教育.ppt
- 科技成就中国梦班会.ppt
- 第1-2讲 MOS管特性和CMOS版图基础.ppt
- 立体构成第一章.ppt
- 第13章 临床即时检验仪器与技术.ppt
- 第1章 史前及先秦时期的建筑.ppt
- 第1章 软件无线电与认知无线电概述.ppt
- 第2章 职业劳动过程中的不良因素危害及预防.ppt
- 第2章 静电场(5) 泊松方程和拉普拉斯方程.ppt
- 企业行政考试真题及答案.doc
- 海洋产业数字化协同创新生态系统构建研究.docx
- 2026年黎明职业大学单招职业倾向性测试题库及答案详解1套.docx
- 2025年安徽澳德矿山机械设备科技股份有限公司_企业报告(供应商版).docx
- 2026年黎明职业大学单招职业倾向性测试题库参考答案详解.docx
- 2026年学历类自考专业(汉语言文学)文学概论-中国古代文学史(一)参考题库含答案解析(5卷试题).docx
- 月度工作规划核心要素.docx
- 2026年黎明职业大学单招职业倾向性测试题库及参考答案详解.docx
- 2026年学历类自考专业(金融)中央银行概论-国际金融参考题库含答案解析(5卷试题版).docx
- 2026年学历类自考专业(营销)消费心理学-国际市场营销学参考题库含答案解析(5卷试题版).docx
原创力文档

文档评论(0)