算法设计练习题
算法设计练习题
一. 计算复杂性
1. P184 10.3 设计一个多项式时间的算法判断一个无向图G 是否是2可着色的
算法:2-COLORING 输入:无向图G(V , E)
输出:该图是2可着色的,则输出yes ;否则,输出no. 1.取任一节点,标记为白色
2.所有与它邻接的节点标记为黑色
3.对任意已标记的节点v ,将所有与v 邻接且未标记的节点标记为与v 相反的颜色
4.重复步骤3,直到不存在与已标记节点邻接且还未标记的节点
5.如果图中还有未标记的节点,那么这些节点一定在一个新的连通分量中,再选 择其中一个节点标记为白色,转到步骤3
6.如果得到的图中,所有邻接的节点都标记为不同的颜色,则输出yes ;否则,输出no.
End 2-COLORING 时间复杂度分析:在n 个顶点和m 条边的图上进行分析,算法的运行时间是)(n m +θ
2. P185-186 10.16 团集问题的NP 完全性是由可满足性问题归约到它证明的,给出
一个从顶点覆盖到团集的较简单的归约
法1:规约方法:设G=(V ,E )是连通无向图,S ?V 是一个团集当且仅当S
-V 是G 中的一个顶点覆盖。
证明:设e=(u,v)是G 中的任意边,S ?V 是一个团集当且仅当u 和v 都在S 中,即S -V 是G 中的一个顶点覆盖。
法2:证明:设G=(V ,E )是连通无向图,S ?V 是G 中的一个独立集,则S 是G 的一个团集,独立集∝poly 团集。因为顶点覆盖∝poly 独立集,根据定理10.3,顶点覆盖∝poly 团集。
3. P185-186 10.26 用顶点覆盖问题规约到集合覆盖问题,证明集合覆盖问题是NP
完全问题。
证明:第一步是说明集合覆盖问题是NP 的。因为一个不确定性算法可以从猜测一个集合X 的子集族F 开始,然后验证是否存在F 中的k 个子集的并是集合X 。 第二步证明顶点覆盖问题可以在多项式时间内规约到集合覆盖问题。
设任意连通无向图G=(V ,E),集合X 为G 中所有与边相邻的顶点的集合,其子集族则是每个顶点与其相邻的顶点构成的子集。集合X 是满足集合覆盖的当且仅当X 的子集族中存在k 个子集的并是X ,当且仅当G 中存在大小为k 的顶点覆盖。 4. P215 12.16
证明:设{x 1,x 2,…,x n }是一个正实数集合。对于每一个实数x i ,我们使它和二维平面中的点{ (x 1,1),(x j ,0) | j ∈2,…,n }相联系,这样,所构造的n 个点都位于三角形边上。如果我们用TRIANGULATION 问题的任何算法求解构造的实例,输出将是根据它们的x 坐标排序的构造点的表,遍历表并读出每点的第一个坐标,结果是排序好的
数。所以,排序问题规约到TRIANGULATION 问题,排序问题是Ω(n logn),TRIANGULATION 问题也是Ω(n logn)。
5. P215 12.17
证明:设{x 1,x 2,…,x n }是一个升序排列的正实数集合,及实数x 。对于实数x 及每一个实数x i ,我们使它和二维平面中的点{(x,0),(x i ,0) | i ∈1,…,n }相联系,这样,所构造的点都位于x 轴上。如果我们用NEAREST POINT 问题的任何算法求解,输出就是二分搜索要查找的数。所以,二分搜索问题规约到NEAREST POINT 问题,二分搜索问题是Ω(logn),NEAREST POINT 问题也是Ω(logn)。
6. P215 12.18
证明:设{x 1,x 2,…,x n }是一个正实数集合,对于每一个实数x i ,我们构造点(x i ,0)与之对应,于是这些点在x 轴上。如果我们用ALL NEAREST POINT 问题的任何算法求解,输出将是每个点(x i ,0)对应的最近点对(x i ,0),(x j ,0)。所以,CLOSEST-PAIR 问题规约到ALL NEAREST POINT 问题,CLOSEST-PAIR 问题是Ω(n logn),ALL NEAREST POINT 问题也是Ω(n logn)。
二. 随机算法
1. P241 14.2 假定你有一枚硬币,请设计一个有效的随机算法用来生成整数1,2...n
的随机排列,n 为正整数,分析你的算法的时间复杂性。
基本思想:从空序列开始,逐个向序列添加1, 2, …, n 。根据二分搜索的思想,并利用多次抛硬币,来随机确定每个添加的数在序列中的位置。
算法 RANDOMIZE2 输入:正整数n
输出:1, 2, …, n 的一个随机排列。 A[1]=1 for i=2 to n
j=randombisearch(1, i-1)//在数组A 中随机确定i 的插入位置。 insert(A , j, i) //在数组A 的j 位置上插入值i 。 end for
output A[1..n] end RONDOMIZE2
过程 randombisearch(low, high)
// 利用二分搜索在A[low..high+1]中随机确定值i 的插入位置, // 并返回该位置。 if low>high then return low else
mid=??
?
?
??+2high low k=random(1,2) //抛一次硬币。
if k=1 then high=mid-1 //插入位置在A[low..mid]中。 else low=mid+1 //插入位置在A[mid+1..high+1]中。
return randombisearch(low, high) end if
end randombisearch 时间复杂性:Θ(n 2)
2. P241 14.5 在算法 RANDOMIZEDQUICKSORT 的讨论中曾说过,为算法
QUICKSORT 得到一个O (log n )期望时间的一种可能性,是通过排列输入元素使它们的次序变成随机的来获得的。描述一个O (n )时间算法,先随机排列下 算法思想:对预排序的数组进行随机排列,使该数组与原先相比显得无序。尽量避免QUICKSORT 算法最坏情况的发生即n^2时间,使之更趋近于最佳情况nlogn 时间。
算法PRE_DISPOSE
输入:n 个元素的数组a[1…n] 输出:随机排列的数组a
for i=1 to n
P =random(n)//随机选择小于n 的数 Q=random(n) //随机选择小于n 的数 互换a[P]和a[Q] end for
end PRE_DISPOSE
3. P241 14.7 考虑对算法BINARYSERCH 做如下修改见1.3节,在每次迭代中,随
机的选择剩下的位置来代替搜索区间减半
设元素存储在一维数组C 中,第0个位置不放元素,若每次生成的随机数都是要查找的剩余元素的第一个且未找到要搜索的数,则时间复杂度计算公式如下:
??
???
=+=∑-=0)0(1)(1)(10C i C n n C n i 计算得到时间复杂度为)(log n O
4. 写出n 皇后问题的如下随机算法:先在棋盘上随机放置m(m 然后用回溯法搜索其余皇后的位置。 算法 NQUEENS_RAN_ACCU 输入:正整数n,m ,其中n 表示棋盘纬度,m 表示随机算法和回溯算法的处理的 划分, m 输出:若找到解,则输出n 皇后问题的一个解x[1..n],否则输出无解 Flag_Random=true //随机查找时是否有解得标记 Flag_Accu=false//精确查找时是否有解得标记 k=1 x[m+1]=0//精确查找初始化 while k<=n and Flag_Random if k<=m//随机算法 j=0 for i=1 to n //寻找第k行所有可放置皇后的位置。 if place(k) then //若第k行的位置i可放置皇后, j++; temp[j]=i; //则存储该位置。 end if end for if j>0 then x[k]=temp[random(1, j)] //随机选取一个位置放皇后 else Flag_Random =false//表示找不到解 end if k++ else if k>m//回溯算法 while k>m and not Flag_Accu while x[k]< n and not Flag_Accu x[k]=x[k]+1 //试将第k行的皇后移到下一个位置。 if place(k) then //第k行的当前位置可放置皇后。 if k=n then Flag_Accu =true //x[m+1..n]是一个解 else //x[m+1..k]是精确解答时的部分解 k=k+1 //前进到下一行 x[k]=0 end if end if //否则,剪枝 end while k=k-1//回溯 end while if k =m break; //退出整个循环 end if end while if Flag_Random and Flag_Accu then output x //输出一个解 else output “No solution”//输出无解 三.近似算法 1.对于装箱问题,分别写出近似算法FF和BF。 思路: 1.最先适配法(FF):箱子编号为1, 2, …, n,初始时各箱子为空。各项按u1, u2, …, un 的顺序装箱,装项ui时,将其装入序号最小的可容得下该项的箱子中(即装入满足l<= 1-si的序号最小的箱子中,其中l表示箱子的已填充容量)。 2.最佳适配法(BF):箱子编号为1, 2, …, n,初始时各箱子为空。各项按u1, u2, …, un 的顺序装箱,装项ui时,将其装入满足l<= 1-si并且使l值最大的箱子中。 算法FF 输入: n个项的集合u[1…n], n个箱子的容量l[1…n],其中0<=u[i]<=1,l[i]=1. 输出: 装这n个项的最少箱子的个数k k=1;//箱子的个数 for i=1 to n//装项ui 时,将其装入序号最小的可容得下该项的箱子中 j=1 flag=false; while j<=k and not flag//从序号最小的开始查找 if l[j]>u[i] then//找到可以放进去的箱子 l[j]=l[j]-u[i] flag=true; else j++//继续寻找 end if end while if not flag then//没有找到可以放进去的箱子 k++//开启新的箱子 l[k]=l[k]-u[i]; end if end for return k end FF 算法BF 输入: n 个项的集合u[1…n], n 个箱子的容量l[1…n],其中0<=u[i]<=1,l[i]=1. 输出:装这n 个项的最少箱子的个数k k=1;//箱子的个数 for i=1 to n//装项ui 时,将其装入满足l<= 1-si 的箱子中使l 值最大的箱子中 if l[j]>u[i] then//找到l 值最大的可以放进去的箱子 l[j]=l[j]-u[i] else k++//开启新的箱子 l[k]=l[k]-u[i]; end if sort(l[1…k])//对前k 个箱子的l 值从大到小排序 end for return k end BF 2. P255 15.10 如图: 按照算法,先得到顶点的度数降序排列:V1、V2、V3、V4(度数均为2),先将V1添加到覆盖中,删除边{ V1 ,V4}和{ V1,V2},接着添加V2,删除边{ V2,V3},添加V3,删除边{ V3,V4}。故得覆盖{ V1,V2,V3},而最佳覆盖为{ V1,V3}或{ V2,V4}。 3. P256 15.14 15.15(这两题的答案是学长给的) V1 V2 V3 V4 15.14考虑在给定的图G 中找出最大团集问题的近似算法,基本步骤: 1、 C={} 2、 向C 中添加一个顶点(该顶点不在C 中,与C 中每个顶点相连接) 3、 重复步骤2,直到C=G 或者G-C 中任一点x 与C 中点都不是全部相连 Solution: 这里}|{是无向图graph graph D II = 取的侯选解集为实例则g g S D g II II )(,∈,是由题意给出的算法设σ。则 而找到团集的顶点个数 作用于实例为算法其中定义g k k f g S II II σσσ,)(),(=∈ 题目算法寻求最大团集,这是最大化问题,∴近似度1) () ()(≥= g g OPT g R σσ 分三种情况讨论: :)i 若则个顶点的无向完全图,是一个具有1,≥∈m g D g II 1)(=g R σ :)ii 若g 是由n 个无向完全图:n g g g ,,,21 之简单并, n i i g g 1 ==, 的顶点个数表示用i i g g )(η,则) ()}(,),(),(max{)(21i n g g g g g R ηηηησ = =M g OPT ) ( +∈Z M 。M g OPT ≥)(且。上式分母取)(i g η输出的是具有示意算法σ)(i g η个顶 n i g i ,,2,1, =点的团集 :)iii 对于g D g II ,∈?不是由)i 、)ii 讨论的无向图,则可以去掉一些边,这些边及跟这 些边相连的顶点不构成图g 的完全子图,最后图g 分解成独立的“较小”的无向图(即团集)的简单并。转为)ii 讨论的情形。 结论:这个近似算法可能达到的近似度具有如下形式:II D g ∈?, ) ()}(,),(),(max{)(21i n g g g g g R ηηηησ = =M g OPT )(,M g OPT Z M ≥∈+ )(,且。 15.15 证明练习15.14中给出的查找最大团集问题的启发式算法的近似度是无界的。 证明:反证法: 假定该启发式算法的近似度是有界的, 则+∞<<≤∈?+=>?M A g R D g A M A A II )(,,1][,0σ为实数,取 由于II D g ∈的任意性,构造g 如下:设1g 是一个具有6M 个顶点的无向完全图,2 g 是 具 有3个顶点的无向完全图,取21g g g ?=,显然II D g ∈,且由于σ是近似算法,∴不可能输出的都是具有)(g OPT 个顶点的团集,故而: M M M g R <== 23 6)(σ 导出矛盾! 4. P256 15.16给出着色问题的一个近似算法:找出给一个无向图着色,使得相邻顶点 着不同颜色的最少颜色数。证明或否定该算法的近似度是有界的 算法思想:对无向图进行分类讨论 算法:COLORING 输入:无向图G(V ,E) 输出:着色的颜色数 if V=0 then return 0 end if if E=0 then return 1 end if if G 是二分图 return 2 end if else return 4 end if end COLORING 证明:在上述算法A 中, 在V=0,E=0, G 是二分图情况都属于最优解,所以其RA(I)=1; 而只有else 语句不是最优解,因为在else 语句中出现的情况不是3可着色就是4可着色的,任何一个图形并不都满足3可着色,3着色是NP 完全问题,但是任何一个平面图G 都是4可着色的,所以这时我们返回4,即 A(I)=4, OPT(I)=3 RA(I)=A(I)/OPT(I)=4/3 所以1<=RA(I)<=4/3 该算法的近似度是有界的得证 5. P256 15.21 证明只需找出一个反例即可。 例 X = { 1, 2, 3, 4, 5, 6, 7, 8} 子集族F = { { 1, 2 } { 2, 3, 4, 5, 6, } { 6, 7, 8 } { 1, 2, 3, 4, } { 5, 6 , 7, 8, } } 已知最小覆盖只需两个即 { 1, 2, 3, 4, } { 5, 6 , 7, 8, } 。但按照算法则先选择交集个数最大的子集{ 2, 3, 4, 5, 6, },然后再在其余的选择两个比如{ 1, 2 },{ 6, 7, 8 } 或者{ 1, 2, 3, 4, } { 5, 6 , 7, 8, }。该题给出的算法对例子的最小覆盖个数是3个。所以不总是产生最小覆盖。 高中信息技术《算法与程序设计》试题 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C 算法实现题3-7 数字三角形问题 问题描述: 给定一个由n行数字组成的数字三角形,如图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。编程任务: 对于给定的由n行数字组成的数字三角形,编程计算从三角形的顶至底的路径经过的数字和的最大值。数据输入: 有文件input.txt提供输入数据。文件的第1行是数字三角形的行数n,1<=n<=100。接下来的n行是数字三角形各行的数字。所有数字在0-99之间。结果输出: 程序运行结束时,将计算结果输出到文件output.txt中。文件第1行中的数是计算出的最大值。 输入文件示例输出文件示 例 input.txt output.txt 5 30 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 源程序: #include "stdio.h" voidmain() { intn,triangle[100][100],i,j;//triangle数组用来存储金字塔数值,n表示行数 FILE *in,*out;//定义in,out两个文件指针变量 in=fopen("input.txt","r"); fscanf(in,"%d",&n);//将行数n读入到变量n中 for(i=0;i 第一章 1现代设计理论与方法是一门基于思维科学、信息科学、系统工程、计算机技术等学科,研究产品设计规律、设计技术和工具、设计实施方法的工程技术科学。 2设计的概念,广义概念是指对发展过程的安排,包括发展的方向、程序、细节及达到的目标。狭义概念是指将客观需求转化为满足需求的技术系统(或技术过程)的活动。 3设计的含义:为了满足人类与社会的功能要求,将预定的目标通过人们创造性思维,经过一系列规划、分析和决策,产生载有相应的文字、数据、图形等信息的技术文件,以取得最满意的社会与经济效益,这就是设计。 4设计的特征:需求特征、创造性特征、程序特征、时代特征。 5设计的四个发展阶段:直觉设计阶段、经验设计阶段、半理论半经验设计阶、现代设计阶6现代设计与传统设计的区别: 传统设计:以经验总结为基础,运用力学和数学而形成的经验、公式、图表、设计手册等作为设计的依据,通过经验公式、近似系数或类比等方法进行设计。传统设计方法基本上是一种以静态分析、近似计算、经验设计、手工劳动为特征的设计方法。 现代设计:是一种基于知识的,以动态分析、精确计算、优化设计和CAD为特征的设计方法。 7现代设计方法与传统设计方法相比,主要完成了以下几方面的转变: 1)产品结构分析的定量化;2)产品工况分析的动态化;3)产品质量分析的可靠性化;4)产品设计结果的最优化;5)产品设计过程的高效化和自动化。 8现代产品设计按其创新程度可分为:开发性设计、适应性设计、变形设计三种类型。 第二章 1功能分析组合方法:求总功能(黑箱法)分功能求解方法(调查分析法、创造性方法、设计目录法)原理解组合(形态分析法) 第三章 1创造技法:(一)集体激智法:(专题会议法,德尔菲法,635法)通过多人的集体讨论和书面交流,互相启迪,并发灵感,进而引起创造性思维的连锁反应,形成综合创新思路的一种创新技法。(二)提问追溯法:(奥斯本提问法,阿诺尔特提问法,5W-1H提问法)是通过对问题进行分析和推理来扩展思路,或将复杂的问题加以分解,找到各种影响因素,从而扎到问题的解决方案的一种创造性技法。(三)联想类比法:(联想发明发,类比发明发,仿生法,综摄法)通过启发、联想、类比、综合等手段,创造出新的想法,这种创造技法就称联想类比法(四)组合创新法:(性能组合,原理组合,功能组合,结构组合)利用事物间的内在联系,用已有的知识和现有的成果进行新的组合。从而产生新的方案。 算法与程序设计 一、选择题部分(100题) 一章一节:了解计算机解决问题的过程 1.用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序答案:B 2.学校要举行运动会,请你设计一个能够对运动员分数自动排序的软件,如果要设计此软件,以下最好的方法和步骤是()。 A、分析问题,编写程序,设计算法,调试程序 B、设计算法,编写程序,提出问题,调试程序 C、提出问题,设计算法,编写程序,调试程序 D、设计算法,提出问题,编写程序,调试程序 答案:C 3.下列步骤不属于软件开发过程的是()。 A、任务分析与系统设计 B、软件的销售 C、代码编写与测试 D、软件测试与维护 答案:B 4.用计算机解决问题的步骤一般为()①编写程序②设计算法③分析问题④调试程序。 A.①②③④ B.③④①② C.②③①④ D.③②①④答案:D 5.以下描述中最适合用计算机编程来处理的是()。 A、确定放学回家的路线 B、计算某个同学期中考试各科成绩总分 C、计算100以内的奇数平方和 D、在因特网上查找自己喜欢的歌曲答案:C 6.以下问题中最适合用计算机编程处理的是()。 A、制定本学期的学习计划 B、计算正方形的周长 C、创作一首歌曲 D、求1000以内的所有素数 答案:D 7.由“上车—掏钱—投币”所描述的问题是()。 A、无人售票车投币过程 B、乘公交车过程 C、上车过程 D、下车过程答案:A 一章二节:算法和算法描述 8.下面说法正确的是()。 A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 答案:A 9.算法描述可以有多种表达方法,下面哪些方法不可以描述“水仙花数问题”的算法()。 A.自然语言 B.流程图 C.伪代码 D.机器语言答案:D 10.下面关于算法的说法错误的是()。 A、算法必须有输出 B、算法就是程序 C、算法不一定有输入 D、算法必须在有限步执行后能结束 答案:B 11.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、情况结构 C、流程结构 D、循环结构答案:D 12.算法的三种基本控制结构是分支结构、循环结构和() A、模块结构 B、情况结构 C、流程结构 D、顺序结构答案:D 13.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、循环结构 C、流程结构 D、情况结构答案:B 14.下面关于算法的认识正确的是()。 A、算法就是求解“鸡兔同笼问题” B、算法一定没有输出 C、算法就是计算机程序 D、算法的步骤必须是有限的答案:D 3.用梯度法求下列无约束优化问题:MinF(X)=x12+4x22,设初始点取为X(0)={2,2}T,以梯度模为终止迭代准则,其收敛精度为5。 1)求初始点梯度▽F(X) ▽F(X)={2x1,8x2}T▽F(X(0))={4,16}T (2)第一次搜索 |▽F(X(0))|=16.5,S(0)=- ▽F(X(0))/16.5=-{0.243,0.97}T α(0)=2.157 X(1)=X(0)+α(0)S(0)={1.476,-0.923}T ▽F(x(1))={2.952,-0.738}T |▽F(x(1))|=3.043<5.0 故满足要求,停止迭代。 最优点X*={1.476,-0.0923}T 最优值F(X*)=2.21 4. 5. 6. 用外点法求解约束优化问题: ()()12211221min ..0()0 f X x x s t g X x x g X x =+=-≤=-≤ , 收敛准则:(1) ()0.10.01k k X X εδ+-≤=,约束容限= 解:(1)利用外点法惩罚法构造无约束优化问题 () ( ) 12()22()212121(min ,()() k k k x x X r x x r x x r x +??Φ=?++-+-??可行域内)(可行域外) (2)此例只是为了说明外点法的思路,用微分法求解上述无约束优化问题。 用极值条件求解: 在可行域内:偏导数不可能等于0,即可行域内无极值 在可行域外,令: ()2()11211 ()2122 14()2012()0k k k r x x x r x x r x x x ?Φ =+-+=??Φ =--=? 《算法与程序设计》试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C 算法分析与设计习题集整理 第一章算法引论 一、填空题: 1、算法运行所需要的计算机资源的量,称为算法复杂性,主要包括时间复杂度和空间复杂度。 2、多项式10()m m A n a n a n a =+++L 的上界为O(n m )。 3、算法的基本特征:输入、输出、确定性、有限性 、可行性 。 4、如何从两个方面评价一个算法的优劣:时间复杂度、空间复杂度。 5、计算下面算法的时间复杂度记为: O(n 3) 。 for(i=1;i<=n;i++) for(j=1;j<=n;j++) {c[i][j]=0; for(k=1;k<=n;k++) c[i][j]= c[i][j]+a[i][k]*b[k][j]; } 6、描述算法常用的方法:自然语言、伪代码、程序设计语言、流程图、盒图、PAD 图。 7、算法设计的基本要求:正确性 和 可读性。 8、计算下面算法的时间复杂度记为: O(n 2) 。 for (i =1;i 《算法与程序设计》模块练习题 一、单选题 1、模块化程序设计方法主要通过()来实现。 A.递归算法和递归程序 B.过程和函数的定义和调用 C.程序的循环结构 D.对象答案:B 2、text1.text的含义正确的是()。 A.text1是控件名称,text是控件属性 B.text1是窗体名称,text 是控件 C.text1是控件名称,text是方法 D.text1是控件属性,text是控 件答案:A 3、以下程序段运行后S的值是()。 s = 0 For i = 1 To 14 x = 2 * i - 1 If x Mod 3 = 0 Then s = s + 1 Next i A.0 B.4 C.5 D.14 答案:C 4、数列1,4,7,10,13,……的递推公式为()。 A.f(1)=1;f(n)=n+3 B.f(1)=1;f(n)=n*2-1 C.f(1)=1;f(n)=n*2+1 D.f(1)=1;f(n)=f(n-1)+3 答案:D 5、对于对象及其特征的错误理解是()。 A.对象都具有一个标识自己以区别其他对象的名字。 B.对象都具有自身的属性及其属性值。 C.对象一般只用数据表示属性,但不用代码表示行为。 D.对象都具有自身的行为(操作)。 答案:C 6、VB函数Left ()从字串左端取部分字串,那么Left("Visual Basic 6.0", 8)的值为()。 A.Visual B B.Visual C.Visual Ba D.asic 6.0 答案:A 7、程序段如下: c ="1234" For i = 1 To 4 Print _____, Next 如果要让程序运行后得到如下结果: 1 1 2 12 3 1234 则在下划线处应填入的内容为()。 A.Right(c,i) B.Left(c,i) C.Mid(c,i,1) D.Mid(c,i,i) 答案:B 8、若X = True,执行If X Then X = 0 Else X = 1后X的结果为()。 现代设计方法综合训练题 第二部分 非选择题 三、填空题 请在每小题的空格中填上正确答案。错填、不填均无分。1.计算机辅助设计(CAD)是指人们在计算机的辅助下,对产品或工程进行设计、绘图、分析计算或编写技术文件以及显示、输出的一种设计方法。 2.CAD系统的软件根据其用途可分为三类,它们是:软件、支撑软件专用软件。 3.在特征模型中,形状特征是其它特征的载体,非几何特征信息一般作为附加在形状特征上。 4.在单峰搜索区间[a,b]内,任取两个试算点a1,a2,若两点的函数值 F(a1)>F(a2),则缩小后的区间为。 5.当有两个设计变量时,目标函数与设计变量之间的关系是中的一个曲面。 6.在有限元方法中,求总刚度矩阵的方法主要有两种,其中一种方法是利用刚度系数集成的方法获得总刚度矩阵的,该方法应用了 原理。 7.单元刚度矩阵具有对称性、性和奇异性。 8.2/3表决系统中各子系统的可靠度为R,则该系统的可靠度为 。 9.可靠度是对产品可靠性的度量。 10.某串联机电系统由N个子系统组成,各子系统的可靠度服从指数分布,且第i个子系统的失效率为λ,则该系统的平均寿命为。11.优化设计亦称最优化设计,它是以为基础,以电子计算机为辅助工具的一种设计方法。 12.优化设计的数学模型一般由设计变量、和约束条件三个基本要素组成。 13.国标GB3187-82将可靠性定义为:“产品在和规定的时间内,完成规定功能的能力。” 14.所谓特征指的是反映、可按一定原则分类的、具有相对独立意义的典型结构形状。 15.梯度是函数对各个设计变量的所组成的列矢量,并以符 号“”或grad表示。 16.二次插值法的基本思想是:在选定的单峰区间内取一点,连同两端点,利用这三点的函数值构成一个,作为原函数的近似,求出近似二次多项式的极小点作为原函数的近似最优点。 高一第二学期《算法与程序设计》学分认定试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么”,然后再确定程序“如何做”请问“如何做”是属于用计算机解决问题的哪一个步骤() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、 D、 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式A+B+C 绪论 1、设计的的本质是由功能到结构的映射过程,是技术人员根据需要进行构思、计划并把计划变为现实可行的机械系统的过程。 2、计划具有个性化、抽象化、多解性的基本特征。 3、现代设计方法: 计算机辅助设计概念:计算机辅助设计是利用计算机及其图形设备辅助人们进行设计。优化设计是从多种设计方案中选择最佳方案的方法,它以数学中的最优化理论为基础,以计算机为手段,根据设计所追求的性能目标,建立目标函数,在满足给定的各种约束条件下,寻求最优的设计方案。 有限元设计就是利用假想的线和面将连续的介质内部和边界分割成有限大小、有限数目、离散的单位来研究。 稳健设计通过质量工程方法在产品设计阶段就要求把产品设计完美、健全,不受或尽量减少生产线波动带来的影响,以保证产品达到预期的质量效果。 虚拟设计是一种新技术,它可以在虚拟环境中用交互手段对在计算机内建立的模型进行修改,缩短了产品开发周期,提高了产品设计质量和一次设计成功率。 创新设计、智能设计、表面设计、绿色设计、动态设计、摩擦设计、协同设计、工业设计等。一 1、计算机辅助设计(简称CAD):是计算机科学领域的一门重要技术,是集计算、设计绘图、工程信息管理、网络通信等领域知识于一体的高新技术,是先进制造技术的重要组成部分。 2、CAD:(computer aided design):即计算机辅助设计CAE(computer aided engineering):即计算机辅助分析,CAM(computer aided manufacture):即计算机辅助制造,CAPP(computer aided process planning):即计算机辅助工艺设计,CIMS(computer integrated manufacturing system):即计算机集成制造系统, 8、CAD的特点:1)规范化、高质量规范设计流程,统一文档格式,提高设计质量。9、CAD发展方向:脱离图版,实现全自动无纸化设计、生产和制造,是CAD发展的最终目标。 10.CAD的基本功能及优点:1)人机交互 2)几何造型 3)计算分析 4)系统仿真 5)工程绘图 6)数据管理 11、CAD系统组成:CAD系统的硬件结构:计算机、图形输入设备、输出设备 CAD系统的软件:软件系统、支撑软件、应用软件。 二 1、优化设计:是从多种方案中选择最佳方案的设计方法。它以数学中最优化理论为基础,以计算机为手段,根据设计所追求的性能目标,建立目标函数,在满足给定的各种约束条件下,寻求最优的设计方案。 2、P49页:例2-1 黄金分割法求函数,3无约束优化方法:坐标轮换法、牛顿法、 约束优化方法:遗传算法、惩罚函数法、复合形法多目标优化方法:多目标优化问题、主要目标法、统一目标法 三 1、有限元法的概念:把复杂的结构看成由有限个单元组成的整体的一种设计方法 2、有限元法的基本思想:化整为零,积零其整,把复杂的结构看成由有限个单元组成的整体 3、弹性力学中的基本假设:连续性假设,完全弹性假设,各向同性假设,均匀性假设,微小性假设,无初应力假设 2、弹性力学的基本方程:平衡方程、几何方程、物理方程、边界条件 《算法与程序设计》模块会考复习题 一.单选题 1. java方法重载时参数不可能出现的情况是____D______。P67 A.参数的个数不同 B.参数的个数相同而参数的类型不同 C.参数不完全对应相同D.参数完全对应相同 2. 运行Java程序需要的工具软件所在的目录是___A_______。P16 A.JDK的bin目录B.JDK的demo目录 C.JDK的lib目录D.JDK的jre目录 3. J_HelloWorld.java 的文件内容如下: class J_HelloWorld { public static void Main(String args[]) M不应大写 { System.out.println(" Hello World "); } } 下面说法正确的是____B______。 A.J_HelloWorld.java无法通过编译,因为main方法的声明方式不对 B.J_HelloWorld.java可以通过编译,但程序运行时出现“程序中没main方法”的异常C.J_HelloWorld.java可以通过编译,但无法运行,因为该文件没有public类 D.J_HelloWorld.java可以通过编译并正常运行,结果输出字符串“Hello World” 4. 逻辑表达式!(3/2==1.5)&& 9<3|| 9>3的运算结果为_____A_______。 P9 A.true B.false C.表达式有错D.条件不足 5. 下列可以将变量x和y的值互换的语句是___B______。P35 A.x=y;y=x; B.z=x;x=y;y=z; C.x=z;z=y;y=x; D. x=(x+y)/2;y=(x-y)/2; 6. 执行完下面程序片段之后,下面结论正确的是___B_____。 P43 int a,b,c; a=1;b=2; c=(a+b)>3 ? a++:b++; A.a的值是2,b的值是3 B.a的值是1,b的值是3 C.a的值是1,b的值是2 D.c的值是false。 7. 下面程序片段输出的是___C_______。应使用关系运算符== int a=3,b=1; 2014山东省信息技术学考算法与程序设计试题答案附后讲解 山东省学考算法与程序设计试题 选择题 1、下列VB表达式中: ⑴Sqr(x) ⑵Text1.text ⑶Command1.caption ⑷"45"+"34" ⑸45+34值为字符串类型的是() A⑴⑵⑶ B⑵⑶⑷ C ⑴⑶⑸ D⑵⑷⑸ 2、如果给出三条线段的长分别为a、b、c,且已知a≤b≤c,要问这三条线段能否构成三角形,仅需下列选项中的哪个判定条件即可?() A 其他选项都不对 B a+c>b C a+b>c D b+c>a 3、VB程序中“Dim n As Integer”这条语句的作用是() A 定义一个事件过程 B 定义一个数据输入方法 C 定义一个变量 D 定义一个数据处理方法 4、关于算法的描述,下列选项中正确的是() A 算法的每一步骤必须有确切的含义 B 算法必须有输入 C 算法的步骤可以是无穷的 D 算法本身就是一种程序设计语言 5、关于算法的描述,正确的是() A同一种算法只能用一种程序语言实现 B算法就是数值计算的方法 C描述算法的方法只有流程图 D算法是描述解决问题的方法和步骤 6、算法的描述方法有多种,下列选项中不适合描述算法的是() A机器语言 B自然语言 C流程图 D伪代码 7、长度分别为a、b、c的三条线段,能够组成三角形的条件是() A a+b>c Or a+c>b Or b+c>a B a+b>c or a+c>b And b+c>a C a+b>c Or a+c>b And b+c>a D a+b>c And a+c>b And b+c>a 8、已知海伦公式:()()() p p a p b p c ---p=1 2 (a+b+c),a、b、c分别为三角形的三条 边长。利用海伦公式求三角形面积的算法属于() A 排序法 B 解析法 C 穷举法 D 查找法 9、以下程序段中循环体执行的次数是() s=0 i=0 Do While s<10 i=i+1 s=s+i*i Loop A 1 B 3 C 2 D 4 10、下列VB表达式中,能正确表达不等式方程|x|>1的解的是() A x>-1 and x<1 B x>-1 or x<1 C x<-1 and x>1 D x<-1 or x>1 11、一元二次方程ax2+bx+c=0(a≠0)的两个实数根分别为: x 1 24 b b ac -+- 2 24 b b ac ---下列表达式正确的是() A x 2=-b-sqr(b^2-4*a*c)/(2*a) B x 1 =(-b+sqr(b^2-4ac))/(2*a) 第一章作业 1.证明下列Ο、Ω和Θ的性质 1)f=Ο(g)当且仅当g=Ω(f) 证明:充分性。若f=Ο(g),则必然存在常数c1>0和n0,使得?n≥n0,有f≤c1*g(n)。由于c1≠0,故g(n) ≥ 1/ c1 *f(n),故g=Ω(f)。 必要性。同理,若g=Ω(f),则必然存在c2>0和n0,使得?n≥n0,有g(n) ≥ c2 *f(n).由于c2≠0,故f(n) ≤ 1/ c2*f(n),故f=Ο(g)。 2)若f=Θ(g)则g=Θ(f) 证明:若f=Θ(g),则必然存在常数c1>0,c2>0和n0,使得?n≥n0,有c1*g(n) ≤f(n) ≤ c2*g(n)。由于c1≠0,c2≠0,f(n) ≥c1*g(n)可得g(n) ≤ 1/c1*f(n),同时,f(n) ≤c2*g(n),有g(n) ≥ 1/c2*f(n),即1/c2*f(n) ≤g(n) ≤ 1/c1*f(n),故g=Θ(f)。 3)Ο(f+g)= Ο(max(f,g)),对于Ω和Θ同样成立。 证明:设F(n)= Ο(f+g),则存在c1>0,和n1,使得?n≥n1,有 F(n) ≤ c1 (f(n)+g(n)) = c1 f(n) + c1g(n) ≤ c1*max{f,g}+ c1*max{f,g} =2 c1*max{f,g} 所以,F(n)=Ο(max(f,g)),即Ο(f+g)= Ο(max(f,g)) 对于Ω和Θ同理证明可以成立。 4)log(n!)= Θ(nlogn)高中信息技术《算法与程序设计》试题
算法设计与分析课后部分习题答案
现代设计理论与方法
《算法与程序设计》复习题
现代设计方法习题答案
《算法与程序设计》试题带答案
算法分析与设计习题集整理
算法与程序设计习题
现代设计方法综合训练题
算法与程序设计试题带答案
现代设计理论与方法重点
《算法与程序设计》会考复习题(答案)
2014山东省信息技术学考算法与程序设计试题答案附后讲解
算法设计与分析习题解答