算法部分作业答案要点

算法部分作业答案要点
算法部分作业答案要点

1.1算法:是对特定问题求解步骤的一种描述,是指令的有限序列。

程序:当一个算法用某种程序设计语言来描述时,得到的就是程序,也就是说,程序是用某种程序设计语言对算法的具体实现.

算法有输入、输出、确定性、能行性和有限性等特征,当不具备有穷性时,只能叫做计算过程,而不能称之为算法,算法可以终止,而程序没有此限制。

1.2程序证明和程序测试的目的各是什么?

程序证明是确认一个算法能正确无误的工作.

程序测试的目的是发现错误

1-9解: n!的递归定义:

1

1

)!

1

(*

{

!=

-

=n

n

n

n

n

求解n!的递归函数

long Factorial (long n)

{

if(n<0)

{

cout<<”error!”;

exit(0);

}

if(n==0)

return 1;

else return n *Factorial (n-1);

}

1-10使用归纳法,证明上题所设计的计算n!的递归函数的正确性

证明(归纳法证明):

(1)首先,如果n=0,那么程序执行

if(n==0)

return 1;

返回1,算法显然正确;

(2)假定函数Factorial对n1)能正确运行,那么,当n=k时,算法必定执行:

else return k *Factorial (k-1);

因为Factorial (k-1)正确,所以,当n=k时,程序运行正确

综合以上两点,可得程序正确.

证毕.

2-1, 简述衡量一个算法的主要性能标准,说明算法的正确性与健壮性的关系答: 衡量一个算法的主要性能指标有:

正确性,简单性,高效低存储,最优性

算法的正确性与健壮性的关系:

所谓算法的正确性:是指在合法的输入下,算法应实现预先规定的功能和计算精度要求;所谓算法的健壮性,是指当输入不合法时,算法应该能按某种预定的方式做出适当的处理;

正确的算法不一定的是健壮的,健壮的算法也不一定是完全正确的.正确性和健壮性是相互补充的.一个可靠的算法,要求能在正常情况下正确的工作,而在异常情况下,亦

能做出适当处理.

2-9(1)设计一个C/C++程序,实现一个n*m 的矩阵转置,原矩阵与其转置矩阵保存在二维数组中.

V oid reverse(int **a,int **b,int n,int m) {

For(int i=0;i

For(int j=0;j

(2)使用全局变量count,改写矩阵转置程序,并运行修改后的程序以确定此程序所需的程序步

V oid reverse(int **a,int **b,int n,int m,int &count) {

int i=0; count++; int j=0; count++; For(;i

For(;j

{

count++;

b[j][i]=a[i][j];

count++; }

}

2-10 试用定义证明下列等式的正确性

(1) 5n 2-8n+2=O(n 2)

证明: 因为当n 0=1,C=6时,当n>n 0时,有5n 2-8n+2<=6n 2

2-16 使用递推关系式计算求n!的递归函数的时间(即分析1-9题中的函数的时间复杂度),要求使用替换和迭代两种方法分别计算之.

解: 分析1-9题中的函数的时间复杂度:用基本运算乘法的运算次数作为衡量时间复杂度的量

当n=0时,程序执行if(n==0) return 1;,并没有做乘法,故T(0)=0;当n>=1时程序执行n *Factorial (n-1);此时T(n)= T(n-1)+1故:

11

)1({)(=≥+-=n n n T n T

替换法: T(0)=0,T(1)=1,T(2)=2----- 总结得到:T(n)=n;

归纳法证明:

(1),当n=0时,T(0)=0,结论成立;

(2)假设当k=0有T(n)=n;成立.

迭代法:

T(n)=T(n-1)+1

=(T(n-2)+1)+1=((T(n-3)+1)+1)+1=....=T(0)+1+1......+1(n 个1)=n 2-19 利用递归树计算递推方程2

)2/(2)(n n T n T += 2)1(=T

假设n=2k

,那么,总共有logn+1(即k+1)层,非递归部分之和为

n 2+n 2/21+n 2/22+…+n 2/2k =(1+1/2+1/22+1/23+…+1/2logn )n 2 =2n 2+2n=O(n 2)

5-8三分搜索算法的做法是:它先将待查元素X 与n/3处的元素比较,然后将X 与2n/3处的元素比较,比较的结果或者找到X,或者将范围缩小到原来的n/3 int Search3(int a[],int left,int right,int x) /*递归算法*/ {

int l,u;

if(left<=right) {

l=left+(right-left)/3; u=left+(right-left)*2/3; if(x==a[u]) return u; else if(x==a[l]) return l; else if(x>a[u]) return Search3(a, u+1, right,x); else if(x>a[l]) return Search3(a, l+1, u-1,x); else

return Search3(a, left, l-1,x); }

return -1; }

void main() {

int n,*a;

int x,i;

cout<<"Please input n:";

cin>>n;

a=new int[n]; //动态数组

int location=-1;

for(i=0;i

{

a[i]=i+1;

}

cout<<"Please input the search x:";

cin>>x;

cout<

}

void main() /*非递归算法*/ {

int a[15];

int x,i;

int location=-1;

for(i=0;i<15;i++)

{

a[i]=i+1;

}

cin>>x;

i=0;

int j=14,l,u;

while(i<=j)

{

l=i+(j-i)/3;

u=i+(j-i)*2/3;

if(x==a[u])

{

location=u;

break;

}

else if(x==a[l])

{

location=l;

break;

}

else if(x>a[u])

i=u+1;

else if(x

j=l-1; else { i=l+1; j=u-1; } }

cout<

Void stoogesort(nt a[],int left,int right) {

if(a[left]>a[right]) swap(a,left,right); if(left+1>=right) return; int k=(right-left+1)/3; stoogesort(a,left,right-k); stoogesort(a,left+k,right); stoogesort(a,left,right-k); } 证明:

元素个数n=right-left+1;

(1) 若为空表或只有一个元素(n=1时,即left+1==right)时,程序执行if(a[left]>a[right])

swap(a,left,right);之后,执行if(left+1>=right) return;即此时程序做了一次元素之间的比较之后,不做任何操作,显然正确.

(2) 假设当n< right-left+1(n>=2)时,算法正确,即对于所有元素个数小于n 的元素集,

算法能正确排序.

那么,当n= right-left+1时,算法执行程序段:

int k=(right-left+1)/3; stoogesort(a,left,right-k); stoogesort(a,left+k,right);

stoogesort(a,left,right-k);

由假设可知:以上三条语句都能正确运行,所以,当n= right-left+1时,算法正确.

由以上两点可知,算法正确.

分析算法的时间复杂度:

排序算法,基本运算仍然是元素之间的比较,所以,算法时间复杂度为:

1,012

1)3/2(3{

)(=≥+=n n n T n T (用替换或迭代法计算之即可)

6-1设有背包问题实例,n=7,(w0,w1,w2,w3,w4,w5,w6)=(2,3,5,7,1,4,1),(p0,p1,p2,p3,p4,p5,p6)=( 10,5,15,7,6,18,3),M=15。求这一实例的最优解及最大收益.

解:

首先,选择最优量度标准为收益重量比;

其次, 依据收益重量比的非增次序对输入(物品)进行排序

(p0/w0,p1/w1,p2/w2,p3/w3,p4/w4,p5/w5,p6/w6)=(5,5/3,3,1,6,4.5,3)

对物品排序结果为:4,0,5,2,6,1,3

最后,进行贪心选择:

X=(4) X=(4,0) X=(4,0,5) (剩余载重)U=14 U=12 U=8

(收益) P=6 P=6+10=16 P=16+18=34

X=(4,0,5,2) X=(4,0,5,2,6) X=(4,0,5,2,6,1(2/3)) (剩余载重)U=3 U=2 U=0

(收益) P=34+15=49 P=49+3=52 P=52+2/3*5=55.33

所以,最优解为x=(1,2/3,1,0,1,1,1); 即装入第0,2,4,5,6物品和第1个物品的2/3 最大收益: P=55.33

6-2,0/1背包问题是一种特殊的背包问题,装入背包的物品不能分割,只允许或者整个物品装入背包,或者不装入,即xi=0,或1,(0<=i

解:

首先,选择最优量度标准为收益重量比;

其次, 依据收益重量比的非增次序对输入(物品)进行排序

(p0/w0,p1/w1,p2/w2,p3/w3,p4/w4,p5/w5,p6/w6)=(5,5/3,3,1,6,4.5,3)

对物品排序结果为:4,0,5,2,6,1,3

最后,进行贪心选择:

X=(4) X=(4,0) X=(4,0,5) (剩余载重)U=14 U=12 U=8

(收益) P=6 P=6+10=16 P=16+18=34

X=(4,0,5,2) X=(4,0,5,2,6) X=(4,0,5,2,6) (剩余载重)U=3 U=2 继续考察第1和第3个 (收益) P=34+15=49 P=49+3=52 物品,都不能装入.

所以,贪心法求得的0/1背包问题的最优解为x=(1,0,1,0,1,1,1);即装入第0,2,4,5,6物品

最大收益: P=52

但实际上,当y=(1,1,1,0,1,1,0) 即装入第0,1,2,4,5物品,可获收益为P=54,所以,贪心法求得的0/1背包问题的解x一定不是最优解.

原因是: 对于0/1背包问题,贪心法并不能保证使其单位载重下的收益最大,因为通常在背包没还装满时,却再也装不下任何物品,这样,就使得单位载重下的物品收益减少,所以, 0/1背包问题通常不能用贪心法求解.

6-3 设有带时限的作业排序实例n=7,收益(p0, p1, p2, p3, p4, p5, p6)=(3,5,20,18,1,6,30),作业的时限(d0, d1, d2, d3, d4, d5, d6)=(1,3,4,3,2,1,2),给出以此实例为输入,执行函数JS 得到的用最优解和最大收益。

解:X={5,6,3,2} 最大收益为74

函数JS 如下:

int JS(int *d, int *x, int n) { //设p 0≥p 1≥…≥p n 1 int k=0; x[0]=0;

for (int j=1; j

while (r>=0 && d[x[r]]>d[j] && d[x[r]]>r+1)r--; //搜索作业j 的插入位置 if((r<0 || d[x[r]]<=d[j]) && d[j]>r+1){ //若条件不满足,选下一个作业 for (int i=k; i>=r+1; i--) x[i+1]=x[i]; //将x[r]以后的作业后移 x[r+1]=j; k++;

//将作业j 插入r+1处

}

} return k;

}

在执行JS 函数之前,必须先对输入(即作业)按作业的收益非增次序排序,结果为: 6,2,3,5,1,0,4 接着执行JS 函数:

最初, 解集合X 为空

首先, 考虑作业6, 假设将其加入集合X, 即x[0]=6;

考虑X 中的作业能否均如期完成,因为此时X 中只有作业6,其截止时限为2,故,能如

期完成,此时,将作业6加入作业子集X 中,此时,子集X 中的最大可用下标k=0;

接着,考虑作业2.

首先搜索作业2在X 集合中的插入位置,使得X 集合中的元素按作业的截止时限的非减次序排序,因为d6=2,而d2=4,所以,可将作业2插在作业6的后面,即x[1]=2,得到X=(6,2),

考虑X 中的作业能否均如期完成?因为d6=2>=1, d2=4>=2,所以,X 中作业均能如期完成,将作业2加入子集X 中. 子集X 中的最大可用下标k=k+1=1

X: 0 1 2 3 4 5 6 k

0 1 2 3 4 5 6

X: k

考虑作业3.

首先搜索作业3在X 集合中的插入位置,使得X 集合中的元素按作业的截止时限的非减次序排序,因为d6=2, d2=4,而d3=3所以,可将作业3插在作业6的后面,作业2的前面,得到X=(6,3,2),

考虑X 中的作业能否均如期完成?因为d6=2>=1, d3=3>=2, d2=4>=3所以,X 中作业均能如期完成,将作业2加入子集X 中. 子集X 中的最大可用下标k=k+1=2

考虑作业5.

首先搜索作业5在X 集合中的插入位置,使得X 集合中的元素按作业的截止时限的非减次序排序,因为d6=2, d2=4, d3=3而d5=1所以,可将作业5插在作业6的前面,得到X=(5,6,3,2),

考虑X 中的作业能否均如期完成?因为d5=1>=1,d6=2>=2, d3=3>=3, d2=4>=4所以,X 中作业均能如期完成,将作业5加入子集X 中. 子集X 中的最大可用下标k=k+1=3

考虑作业1.

首先搜索作业1在X 集合中的插入位置,使得X 集合中的元素按作业的截止时限的非减次序排序,因为d5=1,d6=2, d3=3,d2=4,而d1=3所以,可将作业1插在作业2的前面,作业3的后面,得到X=(5,6,3,1,2),

0 1 2 3 4 5 6

X: k 0 1 2 3 4 5 6

X: k 0 1 2 3 4 5 6

X: k

0 1 2 3 4 5 6

X: k 0 1 2 3 4 5 6

X: k

0 1 2 3 4 5 6

X: k

考虑X 中的作业能否均如期完成?因为d5=1>=1,d6=2>=2, d3=3>=3, d1=3<4所以,X 中1作业不能如期完成,所以,不能将作业1加入子集X.

接着考虑作业0,4均不能加入子集X,

故,执行JS 得到的最优解为X=(5,6,3,2),最大收益为P=p5+p6+p3+p2=30+20+18+6=74

6-17,最佳装载问题是将一批集装箱装上一艘载重为C 的轮船,其中集装箱i 的重量为wi(0<=i<=n-1),最优装载问题是指在装载体积不受限制的情况下,求使得装箱数目最多的装载方案.

(1)按贪心策略的要求,给出关于上述最优化问题的形式化描述. (2)给出贪心法求解这一问题的最优量度标准; (3)讨论其最优解的最优子结构. (4)编写装箱问题的贪心算法;

(5)设有重量为(4,6,3,5,7,2,9)的7个集装箱,轮船载重为26,求最优解. 解;(1),形式化描述如下:

给定C>0, w i >0

10-≤≤n i 求X=(10}

1,0{)...,,(1210-≤≤∈-n i x x x x x i n )

使得

C w x n i i

i ≤∑-=10

并且使∑-=1

n i i x 最大

(2)以重量作为最优量度标准,以重量最轻者先装来选择集装箱装上船

(3)设(x 0,x 1,----x n-1)是最优装载问题的最优解,则易知(x 1,x 2,----x n-1)是轮船载重为C-x 0w 0且待装船的集装箱为{1,3----n-1}时相应最优装载问题的一个最优解,即最优装载问题具有最优子结构特性。否则,假设(x 1,x 2,----x n-1)不是子问题的最优解,假设有另一个解Z=(z 1, z 2,---- z n-1)是子问题的最优解,则有:

则:i n i i n i z x x x ∑

-≤≤-≤≤+

<+

1

101

10且C z

w w x i

n i i ≤+

∑-≤≤1

100,即(x 0,z 1, z 2,-- z n-1)是最优装载问

题的最优解,与(x 0,x 1,----x n-1)是最优装载问题的最优解矛盾,所以, (x 1,x 2,----x n-1)是子问题的最

优解,故最优装载问题具有最优子结构特性。 (4) 参考程序1

/*箱子信息结构体*/ struct goodinfo {

float w; /*箱子重量*/

int X; /*箱子存放的状态*/ int flag; /*箱子编号*/

0 1 2 3 4 5 6

X: k

,

00111111x w C z w z x i n i i i n i i n i -≤<∑

∑∑-≤≤-≤≤-≤≤且

};

/*按物品重量做升序排列*/

void sort(goodinfo goods[],int n)

{

int j,i;

for(j=2;j<=n;j++)

{

goods[0]=goods[j];

i=j-1;

while (goods[0].w

{

goods[i+1]=goods[i];

i--;

}

goods[i+1]=goods[0];

}

}

/*用贪心法对物品进行选择装入*/

void loading(goodinfo goods[],float M,int n)

{

float cu;

int i,j;

int A=0;/*对装入箱子进行计数*/

for(i=1;i<=n;i++)/*赋初值*/

goods[i].X=0;

cu=M; /*船的剩余载重*/

for(i=1;i

{

if(goods[i].w>cu)/*当该箱重量大于剩余载重跳出*/ break;

goods[i].X=1;

A++;

cu=cu-goods[i].w;/*确定船的剩余载重*/

}

for(j=2;j<=n;j++)/*对箱子按序号大小作升序排列*/ {

goods[0]=goods[j];

i=j-1;

while (goods[0].flag

{

goods[i+1]=goods[i];

i--;

}

goods[i+1]=goods[0];

}

cout<<"①最优解为:"<

for(i=1;i<=n;i++)

{

cout<<" 第"<

cout<

}

cout<<"<0:未装入;1:装入>"<

cout<

cout<<"②最多能装入的箱子数为:";

cout<

}

(5)

首先,选择最优量度标准为重量;

其次, 依据集装箱重量的非减次序对输入(物品)进行排序

对集装箱的排序结果为:5,2,0,3,1,4,6

最后,进行贪心选择:

X=(5) X=(5,2) X=(5,2,0) (剩余载重)U=24 U=21 U=17

X=(5,2,0,3) X=(5,2,0,3,1) X=(5,2,0,3,1) (剩余载重)U=12 U=6

所以,最优解为X=(0,1,2,3, 5),最优解值为5

参考程序2

?public static float loading(float c, float [] w, int [] x)

?{

?int n=w.length;

?Element [] d = new Element [n];

?for (int i = 0; i < n; i++)

?d[i] = new Element(w[i],i);

?MergeSort.mergeSort(d);

?float opt=0;

?for (int i = 0; i < n; i++) x[i] = 0;

?for (int i = 0; i < n && d[i].w <= c; i++) {

?x[d[i].i] = 1;

?opt+=d[i].w;

? c -= d[i].w;

?}

?return opt;

}

7-5设有4 个矩阵连乘积ABCD :A: 45*8, B: 8*40, C: 40*25, D: 25*10, ,请求出它们的最优计算次序和计算量。

解:p0=45,p1=8,p2=40,p3=25,p4=10 可只给出矩阵形式

计算m 矩阵为: m[0][1]= p0*p1* p2=45*8*40=14400;

m[1][2]= p1*p2* p3=8*40*25=8000; m[2][3]= p2*p3* p4=40*25*10=11250;

m[0][2]= m[0][0]+m[1][2]+p0*p1* p3=8000+45*8*25=8000+9000=17000

= m[0][1]+m[2][2]+p0*p2* p3=14400+45*40*25=14400+45000 m[1][3]= m[1][1]+m[2][3]+p1*p2* p4=11250+8*40*10=11250+3200

= m[1][2]+m[3][3]+p1*p3* p4=8000+8*25*10=10000

m[0][3]= m[0][0]+m[1][3]+p0*p1* p4=10000+45*8*10=10000+3600=13600

= m[0][1]+m[2][3]+p0*p2* p4=14400+11250+45*40*10=

=m[0][2]+m[3][3]+p0*p3* p4=17000+45*25*10=17000+11250=28250

这4个矩阵相乘需要的最小数量乘法的次数=13600 最优计算次序A ((BC )D )

7-9给定字符串A=“xzyzzyx ”和B=“zxyyzxz ”,使用LCS 算法求最长公共子串,并给出一个最长公共子串。

提示:从上到下,从左往右计算C 矩阵,依据C 矩阵,求得最长公共子序列 解:计算求得C 矩阵如下,

依矩阵C 可求得两个最长公共子序列分别为xyzz 和 zyyx (求一个即可)

0 14400 17000 13600

m= 0 8000 10000

0 11250 0 0 0 0 0 s= 1 1 2 2 2 3

7-17设流水作业调度的实例为n=7,(a0, a1, a2, a3, a4, a5, a6)=(6,2,4,1,7,4,7), (b0, b1, b2, b3, b4, b5, b6)=(3,9,3,8,1,5,6).请使用流水作业调度的Johnson算法求使完成时间最小的最优调度,并求该最小完成时间。

提示:依据调度规则,求得最优调度次序

解:;令mi=min{ai,bi} 0<=i<7

即得: m0=b0=3, m1=a1=2, m2=b2=3, m3=a3=1,

m4=b4=1, m5=a5=4 m6=b6=6

考虑mi,对其从小到大排序得(m3,m4,m1,m0,m2,m5,m6)

考虑mi序列(如果序列中下一个数mi是ai,则作业i放在最左的空位,否则,作业i放在最右的空位)得:

最优调度顺序(3,1,5,6,2,0,4)

依据最优调度在两台处理机上处理作业,最小完成时间:36(画出如教材P170的图7-17的形式即可求得最小完成时间36)

8-2 #include

#include

int count=0;//记录可行解的个数

//先将书中的递归变为如下非递归函数,再在输出一个可行解之后,加上break;

int place(int k,int xk,int *x)

{

for(int j=0;j

if(x[j]==xk || abs(x[j]-xk)==abs(j-k))//相互冲突,return 0;

return 0;

return 1;//互不冲突,return 1

}

void NQueens(int n,int *x)

{

int k=0;

x[k]=-1;

while(k>=0)

{

x[k]=x[k]+1;

while (x[k]

x[k]=x[k]+1;

if(x[k]

if (k==n-1)//找到一个可行解,输出

{

cout<<"The solution is: ";

for(int j=0;j

cout<

cout<

// break;//删除,则可输出所有可行解。

count++;

}

else //找到安置第K个皇后合法的位置,但只是部分向量,所以,继续安置下一个皇后,首先将下个皇后放在棋盘外面

{

k=k+1;

x[k]=-1;

}

else k--;//找不到安置第K个皇后合法的位置,回溯到k-1,将K-1皇后安置到下一个位置x[k]=x[k]+1;

}

}

void main()

{

int n;

cout<<"Please input the number n:";

cin>>n;

int *x=new int[n];

/* for(int i=0;i

{

x[i]=-1;

}*/

NQueens(n,x);

cout<<"the number of the solutions is:"<

}

8-3

#include

#include

int place(int k,int n,int xk,int *x)

{

for(int i=xk;i

{

for(int j=0;j

if(x[j]==i || abs(x[j]-i)==abs(j-k))//相互冲突,检测下一个位置i=i+1

j=k;

if(j==k)//互不冲突

return i;

}

return -1;

}

void NQueens(int n,int *x)

{

int k=0;

while(k>=0)

{

int f=place(k,n,x[k],x);

if(f!=-1)

{

x[k]=f;

if(k==n-1)

{

cout<<"The solution is: ";

for(int i=0;i

cout<

cout<

x[k]=0;

k--;

x[k]+=1;

}

else k++;

}

else

{

x[k]=0;

k--;

x[k]+=1;

}

}

}

void main()

{

int n;

cout<<"Please input the number n:"; cin>>n;

int *x=new int[n];

for(int i=0;i

{

x[i]=0;

}

NQueens(n,x);

}

第三章部分习题答案

第三章部分习题答案 1、高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 答:高级调度主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入内存,也就是说高级调度的调度对象是作业。 低级调度主要任务是:决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。 中级调度的任务:使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调至外存上去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。当这些进程重又具备运行条件且内存又稍有空闲时,由中级调度来决定把外存上的那些又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度。引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。 2、何谓作业、作业步和作业流? 答:作业(Job):作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。 作业步(Job Step)。通常,在作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能得到结果,我们把其

中的每一个加工步骤称为一个作业步,各作业步之间存在着相互联系,往往是把上一个作业步的输出作为下一个作业步的输入。 作业流:若干个作业进入系统后,被依次存放在外存上,这便形成了输入的作业流;在操作系统的控制下,逐个作业进行处理,于是便形成了处理作业流。 5、试说明低级调度的主要功能。 答:(1) 保存处理机的现场信息。 (2) 按某种算法选取进程。 (3) 把处理器分配给进程。 6、在抢占调度方式中,抢占的原则是什么? 答:(1) 优先权原则。 (2) 短作业(进程)优先原则。 (3) 时间片原则。 7、在选择调度方式和调度算法时,应遵循的准则是什么? 答:面向用户应遵循的准则是:(1) 周转时间短。(2) 响应时间快。 (3) 截止时间的保证。(4) 优先权准则。 面向系统应遵循的准则是:(1) 系统吞吐量高。(2) 处理机利用率好。(3) 各类资源的平衡利用。

ch05材料分析测试方法作业答案

第五章 X 射线衍射分析原理 一、教材习题 5-2 “一束X 射线照射一个原子列(一维晶体),只有镜面反射方向上才有可能 产生衍射”,此种说法是否正确? 答:不正确。(根据劳埃一维方程,一个原子列形成的衍射线构成一系列共顶同轴的衍射圆锥,不仅镜面反射方向上才有可能产生衍射。) 5-3 辨析概念:X 射线散射、衍射与反射。 答:X 射线散射:X 射线与物质作用(主要是电子)时,传播方向发生改变的现象。 X 射线衍射:晶体中某方向散射X 射线干涉一致加强的结果,即衍射。 X 射线反射:晶体中各原子面产生的反射方向上的相干散射。与可见光的反射不同,是“选择反射”。 在材料的衍射分析工作中,“反射”与“衍射”通常作为同义词使用。 5-4 某斜方晶体晶胞含有两个同类原子,坐标位置分别为:(43,43,1)和(4 1,41,2 1),该晶体属何种布拉菲点阵?写出该晶体(100)、(110)、(211)、(221)等晶面反射线的F 2值。 答:根据题意,可画出二个同类原子的位置,如下图所示: 如果将原子(1/4,1/4,1/2)移动到原点(0,0,0),则另一原子(3/4,3/4,1)的坐标变为(1/2,1/2,1/2),因此该晶体属布拉菲点阵中的斜方体心点阵。 对于体心点阵: ])1(1[)()2/2/2/(2)0(2L K H L K H i i f fe fe F ++++-+=+=ππ

∴ ???=++=++=奇数时 ,当偶数时;当L K H 0,2L K H f F ???=++=++=奇数时,当偶数时;当L K H L K H f 0,4F 22 或直接用两个原子的坐标计算: ()()()()()()()3 31112()2()4444211111122()222442 1112()442 1(2)211111111i h k l i h k l i h k l i h k l i h k l h k l i h k l h k l h k l F f e e f e e f e f e f ππππππ++++??++++ ???++++++++++??=+ ??? ??=+?????? ??=+-????=+-????=+-±?? 所以 F 2=f 2[1+(-1)(h +k +l )]2 因此,(100)和(221),h +k +l =奇数,|F |2=0;(110)、(211),h +k +l =偶数,|F |2=4f 2。 5-7 金刚石晶体属面心立方点阵,每个晶胞含8个原子,坐标为:(0,0,0)、( 21,21,0)、(21,0,21)、(0,21,21)、(41,41,41)、(43,43,4 1)、(43,41,43)、(41,43,4 3),原子散射因子为f a ,求其系统消光规律(F 2最简表达式),并据此说明结构消光的概念。 答:金刚石晶体属面心立方点阵,每个晶胞含8个原子,坐标为:(0,0,0)、(1/2,1/2,0)、(1/2,0,1/2)、(0,1/2,1/2)、(1/4,1/4,1/4)、(3/4,3/4,1/4)、(3/4,1/4,3/4)、(1/4,3/4,3/4),可以看成一个面心立方点阵和沿体对角线平移(1/4,1/4,1/4)的另一个面心立方点阵叠加而成的。

算法设计与分析考试题及答案

算法设计与分析考试题 及答案 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

一、填空题(20分) 1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:确定性 有穷性 可行性 0个或多个输入 一个或多个输出 2.算法的复杂性有时间复杂性 空间复杂性之分,衡量一个算法好坏的标准是 时间复杂度高低 3.某一问题可用动态规划算法求解的显着特征是 该问题具有最优子结构性质 4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y 的一个最长公共子序列{BABCD}或{CABCD}或{CADCD } 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含一个(最优)解 6.动态规划算法的基本思想是将待求解问题分解成若干_子问题 ,先求解_子问题 ,然后从这些子问题 的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为回溯法 背包问题的回溯算法所需的计算时间为o(n*2n ) ,用动态规划算法所需的计算时间为o(min{nc,2n }) 9.动态规划算法的两个基本要素是最优子结构 _和重叠子问题 10.二分搜索算法是利用动态规划法实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 ①问题具有最优子结构性质;②构造最优值的递归关系表达式; ③最优值的算法描述;④构造最优解; 2. 流水作业调度问题的johnson 算法的思想。 ①令N 1={i|a i =b i };②将N 1中作业按a i 的非减序排序得到N 1’,将N 2中作业按b i 的非增序排序得到N 2’;③N 1’中作业接N 2’中作业就构成了满足Johnson 法则的最优调度。 3. 若n=4,在机器M1和M2上加工作业i 所需的时间分别为a i 和b i ,且 (a 1,a 2,a 3,a 4)=(4,5,12,10),(b 1,b 2,b 3,b 4)=(8,2,15,9)求4个作业的最优调度方案,并计算最优值。 步骤为:N1={1,3},N2={2,4}; N 1’={1,3}, N 2’={4,2}; 最优值为:38 4. 使用回溯法解0/1背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。 解空间为{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1), (1,1,0),(1,1,1)}。 解空间树为: 该问题的最优值为:16 最优解为:(1,1,0) 5. 设S={X 1,X 2,···,X n }是严格递增的有序集,利用二叉树的结点来存储S 中的元素,在表示S 的二叉搜索树中搜索一个元素X ,返回的结果有两种情形,(1)在二叉搜索树的内结点中找到X=X i ,其概率为b i 。(2)在二叉搜索树的叶结点中确定X ∈(X i ,X i+1),其概率为a i 。在表示S 的二叉搜索树T 中,设存储元素X i 的结点深度为C i ;叶结点(X i ,X i+1)的结点深度为d i ,则二叉搜索树T 的平均路长p 为多少假设二叉搜索树T[i][j]={X i ,X i+1,···,X j }最优值为m[i][j],W[i][j]= a i-1+b i +···+b j +a j ,则m[i][j](1<=i<=j<=n)递归关系表达式为什么 .二叉树T 的平均路长P=∑=+n i 1 Ci)(1*bi +∑=n j 0 dj *aj

本课程考核方式为考查

本课程考核方式为考查 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

本课程考核方式为考查。考核方式多样,由平时成绩、实训成绩及考试构成。 成绩评定:平时成绩30%,实训成绩30%,考试成绩40%。 (1)平时考核: 平时考核分三部分内容:实验态度、实验操作、实验报告。 实验态度主要是对学生的考勤情况及其在课堂中表现的评价;实验操作成绩是指对学生在实验过程中表现出的操作规范程度、对实验仪器使用的熟练程度和对实验内容的熟悉程度的评价;实验报告成绩是对学生撰写的文档准确性、规范性的评价。这三部分在总成绩中所占的比例如下: 实验态度 10% 实验操作 20% 实验报告 10% (2)期末考核: 期末考核分两部分内容:期末实验抽考、设计作品评测。 期末实验抽考是在期末对每位学生以抽签的形式选择实验内容进行实验考试,考试内容从平时实验中选取;学生平时利用课余时间分组设计实验电路模块、制板、焊接并调试,在期末对各组设计作品进行评测,评测小组成员由教师和各小组负责人组成。这两部分在总成绩中所占比例如下: 期末实验抽考 30% 设计作品评测 30% 改革单一的闭卷考试考核方法,树立全面的考试观。 改革以知识继承和记忆为主的闭卷式传统考试考核方法,建立以技术应用能力考核为重点,以专业技术标准和职业素质考核为基础的考试考核体系。在考核

内容的选择上,既考知识,又考能力,着重考核学生的综合素质和实践创新能力;在考核方式上,根据考试课程的特点,采用笔试、口试、技能操作、设计等多样化的考试考核方式;在评判学生学业成绩上,可采用百分制、五分制、两级评分等多种评分方法。通过改革考试考核方法,促进学生个性和能力的全面发展。 (一)考核办法 根据不同职业情景的实训要求,采取学生和教师共同评分的办法。根据每次实训的成绩积分,得出最后成绩。 (二)评分标准 共五部分综合评价,各分为五个等级,即优、良、中、及格、不及格。具体要求如下: 1、文档分(40%) 各类文档的完整、清楚、条理、字迹、录入速度等。 优——各类文档格式正确、结构完整、内容明确具体、主题突出、条理清楚、文字通顺、标点符号使用正确、在规定时限内快速完成,打印装订规范美观、完全符合要求。 良——格式正确、结构完整、内容具体、主题明确、条理清楚、文字通顺、及时完成、打印规范。 中——格式基本正确、结构基本完备、内容具体、条理清楚、按时完成、打印规范。 及格——格式基本正确、结构基本完备、内容基本符合要求、按时完成、打印规范。

汽车试验学测试作业及答案

1-2求周期性三角波的均值和均方根值。周期性三角波的数学表达式为 202 ()202A T A t t T x t A T A t t T ?+- <

1-3求双边指数函数的傅里叶变换,双边指数函数的波形如下图所示,其数学表达式为: 0()(0)0at at e t x t a e t -?-∞<?<<∞ ?? 解: ()()()()()()() 000000 2 2 221d 211d d 2211d d 221122*********j t at j t at j t a j t a j t a j t a j t X x t e t e e t e e t e t e t e e a j a j a j a j a a a a ωωωωωωωωπ πππππωπωπωπωπωπω∞--∞∞----∞∞--+-∞--+∞-∞==?+?=+=?-? -+=?+? -+=?+= +????? 1-6设()x t 与()y t 为互不相关的两信号,且()()()f t x t y t =+,()x t 、()y t 的自相关函数分别为()x R τ和()y R τ,求证()()()f x y R R R τττ=+。 证 :

算法设计与分析考试题及答案

1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。 2.算法的复杂性有_____________和___________之分,衡量一个算法 好坏的标准是______________________。 3.某一问题可用动态规划算法求解的显著特征是 ____________________________________。 4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。 6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为_____________。 8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。 9.动态规划算法的两个基本要素是___________和___________。 10.二分搜索算法是利用_______________实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 2.流水作业调度问题的johnson算法的思想。

学校课程考核管理办法

学校课程考核管理办法 第一章 总 则 第一条 为规范考核管理工作,提高教学质量,严肃考风考纪,促进学风建设,根据教育部有关文件精神,结合学校实际,特制定本规定。 第二条 全校的考核工作在分管教学副校长领导下,由教务与科研管理处制订有关规定,对考核的全过程实行规范化管理。各系部负责考核工作的具体实施。 第二章 考核形式 第三条 各专业凡教学计划开设的课程,每学期教学任务完成时,都要进行考核,考核方式分为考试和考查两种。课程考核,原则上考试的科目不少于三分之二,考查的科目不超过三分之一。 第四条 课程考核可采取闭卷笔试、开卷笔试、口试、调查报告、课程论文、课程设计、案例分析、实验操作、技能演示、艺术创作、表演等形式。 第五条 考核形式应根据课程性质、特点和全面考核学生知识与能力的要求来确定。无论采用何种方式都必须保证真实地检测学生的学习状况和教师的教学质量。 第三章 考核资格的审查 第六条 凡正常参加课程教学活动,并遵守学校学籍管理规定的在籍学生(或经学校办理进修、旁听手续的人员),均可参加课程考核。

第七条 有下列情形之一的,取消其参加课程考核的资格: (一)未选课者; (二)未完成规定的作业、实践环节或教师布置的其他学习任务者; (三)旷课时数超过该课程总教学时数三分之一者; (四)未按规定办理注册手续者; 对第(二)、(三)款的情形,教师应于考核周前两周将不具备考核资格的学生名单报各系教学秘书。 对第(四)款情形,由各系部负责人考核前两周报教务与科研管理处。 第八条 对不具备考核资格的学生,各系部要于上报前告知学生本人,确认无误后,再报教务与科研管理处备案。 第九条 学生如对取消考核资格存在异议,应于接到通知后2个工作日内书面反映到相关系部。相关单位2天内认真核实后作出明确答复。 第十条 学生因故不能按时参加考核,需由本人在考核前提出缓考申请报告并附上有关证明,经所在系部领导批准后方可缓考,否则,按旷考处理。重考一般不办理缓考手续。缓考学生名单由相关系部于考前通知课程主讲教师。主讲教师在登录该生成绩时注明“缓考”字样。 第四章 笔试的组织与实施 第十一条 试题由课程所在教研室组织命制。 第十二条 命题要根据教学大纲的要求,既要考虑全面系统地考核

算法部分作业答案要点

1.1算法:是对特定问题求解步骤的一种描述,是指令的有限序列。 程序:当一个算法用某种程序设计语言来描述时,得到的就是程序,也就是说,程序是用某种程序设计语言对算法的具体实现. 算法有输入、输出、确定性、能行性和有限性等特征,当不具备有穷性时,只能叫做计算过程,而不能称之为算法,算法可以终止,而程序没有此限制。 1.2程序证明和程序测试的目的各是什么? 程序证明是确认一个算法能正确无误的工作. 程序测试的目的是发现错误 1-9解: n!的递归定义: 1 1 )! 1 (* { != ≥ - =n n n n n 求解n!的递归函数 long Factorial (long n) { if(n<0) { cout<<”error!”; exit(0); } if(n==0) return 1; else return n *Factorial (n-1); } 1-10使用归纳法,证明上题所设计的计算n!的递归函数的正确性 证明(归纳法证明): (1)首先,如果n=0,那么程序执行 if(n==0) return 1; 返回1,算法显然正确; (2)假定函数Factorial对n1)能正确运行,那么,当n=k时,算法必定执行: else return k *Factorial (k-1); 因为Factorial (k-1)正确,所以,当n=k时,程序运行正确 综合以上两点,可得程序正确. 证毕. 2-1, 简述衡量一个算法的主要性能标准,说明算法的正确性与健壮性的关系答: 衡量一个算法的主要性能指标有: 正确性,简单性,高效低存储,最优性 算法的正确性与健壮性的关系: 所谓算法的正确性:是指在合法的输入下,算法应实现预先规定的功能和计算精度要求;所谓算法的健壮性,是指当输入不合法时,算法应该能按某种预定的方式做出适当的处理; 正确的算法不一定的是健壮的,健壮的算法也不一定是完全正确的.正确性和健壮性是相互补充的.一个可靠的算法,要求能在正常情况下正确的工作,而在异常情况下,亦

软件测试作业与答案

第一章 1.选择题 (1)软件本身的特点和目前软件开发模式使隐蔽在软件部的质量缺陷不可能完全避免,在下列关于导致软件质量缺陷的原因的描述中,不正确的是(C) A.软件需求模糊以及需求的变更,从根本上影响着软件产品的质量 B.目前广为采用的手工开发方式难以避免出现差错 C.程序员编码水平低下是导致软件缺陷的最主要原因 D.软件测试技术具有缺陷 (2)缺陷产生的原因是(D) A.交流不充分及沟通不畅、软件需求的变更、软件开发工具的缺陷 B.软件的复杂性、软件项目的时间压力 C.程序开发人员的错误、软件项目文档的缺乏 D.以上都是 2.判断题 (1)缺乏有力的方法学指导和有效的开发工具的支持,往往是产生软件危机的原因之一。(√) (2)目前的绝大多数软件都不适和于快速原型技术。(√) (3)在程序运行之前没法评估其质量。(×) (4)下列哪些活动是项目 探索火星生命迹象(√) 向部门经理进行月工作汇报(×) 开发新版本的操作系统。(√) 每天的卫生保洁。(×) 组织超级女声决赛。(√) 一次集体婚礼。(√) 3.简答题 (1)什么是软件?软件经历了哪几个发展阶段? 答:软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件北划分为系统软件,应用软件和介于着两者之间的中间件。其中系统软件为计算机使用提供最基本的功能,但是并不是针对某一特定领域,而应用软件则恰好相反,不同的应用软件更根据用户和所服务的领域提供不同的功能。 20世纪50年代初期至60年代中期是软件发展的第一阶段(又称程序设计阶段); 第二阶段从20世纪60年代中期到70年代末期是程序系统阶段。 第三阶段称为软件工程阶段,从20世纪70年代中期到80年代中期,由于微处理器的出现,分布式系统广泛应用,以软件的产品化,系列化,工程化和标准化为特征的软件产业发展起来,软件开发有了可以遵循的软件工程化的设计原则,方法和标准。 第四阶段是从20世纪80年代中期至今,客户端/度武器(C/S)体系结构,特别是Web技术和网络分布式对象技术法飞速发展,导致软件体系结构向更加灵

(完整版)算法设计与分析期末考试卷及答案a

一.填空题(每空 2 分,共30分) 1.算法的时间复杂性指算法中的执行次数。 2.在忽略常数因子的情况下,O、和三个符号中,提供了算法运行时间的一个上界。 3.设D n表示大小为n的输入集合,t(I)表示输入为I时算法的运算时间, p(I)表示输入 I 出现的概率,则算法的平均情况下时间复杂性A(n)= 。 4.分治算法的时间复杂性常常满足如下形式的递归方程: f (n) d , n n0 f(n) af(n/c) g(n) , n n0 其中,g(n)表示。 5. 分治算法的基本步骤包括。6.回溯算法的基本思想是。 7.动态规划和分治法在分解子问题方面的不同点是。 8.贪心算法中每次做出的贪心选择都是最优选择。 9.PQ 式的分支限界法中,对于活结点表中的结点,其下界函数值越小,优先级 10.选择排序、插入排序和归并排序算法中,算法是分治算法。 11.随机算法的一个基本特征是对于同一组输入,不同的运行可能得到的结果。12. 对于下面的确定性快速排序算法,只要在步骤3 前加入随机 化步骤,就可得到一个随机化快速排序算法,该随机化步骤的功能是。 算法QUICKSORT 输入:n 个元素的数组A[1..n] 。 输出:按非降序排列的数组 A 中的元素

1. quicksort(1, n) end QUICKSORT _ _ 过程 quicksort(A, low, high) _ _ // 对 A[low..high] 中的元素按非降序排序。 _ 号 学 2. if low

课程考核管理办法试行

衡水学院课程考核管理办法(试行) (二00六年八月修订) 院政发〔2006〕34号 为了优化考风、学风,健全教学管理制度,完善考核机制,促进学生积极主动学习,不断提高教育教学质量,根据教育部《普通高等学校学生管理规定》和河北省教育厅有关课程考核管理的文件精神,结合我院实际,制定课程考核管理办法。 第一章考核的目的及作用 第一条考核是教学过程中必不可少的重要环节,对学生是一个再学习的过程。通过考核促使学生全面系统地复习、巩固和加深理解所学知识,督促学生更加注意学习的质量,同时起到对教师的教学效果及学生知识、技能的掌握程度和运用能力的双重检查作用。 第二条考核对学生的学习有导向性作用。教师通过考核内容和手段的改革以及科学的命题,可以引导学生不断改进学习方法,拓宽知识面,提高学习质量,使学生更加注重学习方法和效果。 第三条通过考核对学生学习方法、学习能力和学习效果做出鉴定,考核的结果是学生毕业和评定学位的重要依据。 第四条通过考核,可以获得更多的反馈信息,使教育及其管理部门总结经验,改进教学,提高教育教学水平;为深化教育改革,特别是对教学内容、方法及手段的改革提供科学可靠的信息。 第二章考核工作的组织领导 第五条考核工作在主管院长领导下,教务处统一组织,各系(部、室)具体实施。 (一)教务处职责: 1、负责制定考核的有关管理规定,统筹安排全院考核工作计划,审核协调各系(部、室)的考核安排; 2、对考前动员、命题和审题、考场管理、考试纪律、评卷、补考、成绩登统等进行督促和检查; 3、安排院级公共课程的考试时间和地点; 4、提出对在考试中违纪、作弊学生的处理意见,报学生处处理;提出因学习成绩

算法分析与设计作业及参考答案样本

《算法分析与设计》作业( 一) 本课程作业由两部分组成。第一部分为”客观题部分”, 由 15个选择题组成, 每题1分, 共15分。第二部分为”主观题部分”, 由简答题和论述题组成, 共15分。作业总分30分, 将作为平时成 绩记入课程总成绩。 客观题部分: 一、选择题( 每题1分, 共15题) 1、递归算法: ( C ) A、直接调用自身 B、间接调用自身 C、直接或间接 调用自身 D、不调用自身 2、分治法的基本思想是将一个规模为n的问题分解为k个规模 较小的字问题, 这些子问题: ( D ) A、相互独立 B、与原问题相同 C、相互依赖 D、相互独立且与原问题相同 3、备忘录方法的递归方式是: ( C ) A、自顶向下 B、自底向上 C、和动态规划算法相同 D、非递归的 4、回溯法的求解目标是找出解空间中满足约束条件的: ( A )

A、所有解 B、一些解 C、极大解 D、极小解 5、贪心算法和动态规划算法共有特点是: ( A ) A、最优子结构 B、重叠子问题 C、贪心选择 D、 形函数 6、哈夫曼编码是: ( B) A、定长编码 B、变长编码 C、随机编码 D、定 长或变长编码 7、多机调度的贪心策略是: ( A) A、最长处理时间作业优先 B、最短处理时间作业优 先 C、随机调度 D、最优调度 8、程序能够不满足如下性质: ( D ) A、零个或多个外部输入 B、至少一个输出 C、指令的确定性 D、指令的有限性 9、用分治法设计出的程序一般是: ( A ) A、递归算法 B、动态规划算法

C、贪心算法 D、回溯法 10、采用动态规划算法分解得到的子问题: ( C ) A、相互独立 B、与原问题相同 C、相互依赖 D、相互独立且与原问题相同 11、回溯法搜索解空间的方法是: ( A ) A、深度优先 B、广度优先 C、最小耗费优先 D、随机搜索 12、拉斯维加斯算法的一个显著特征是它所做的随机选性决策 有可能导致算法: ( C ) A、所需时间变化 B、一定找到解 C、找不到所需的解 D、性能变差 13、贪心算法能得到: ( C ) A、全局最优解 B、 0-1背包问题的解 C、背包问题的 解 D、无解 14、能求解单源最短路径问题的算法是: ( A ) A、分支限界法 B、动态规划 C、线形规划 D、蒙特卡罗算法 15、快速排序算法和线性时间选择算法的随机化版本是:

《管理信息系统》阶段测验作业(一)答案

沈阳铁路局学习中心

说明: ①阶段测试作业必须由学生书写完成,打印复印不计成绩。 ②学生应按有关课程的教学要求,在规定的交纳日期前交纳作业。 ③任课教师评定考试成绩后,将成绩与评语反馈给学生本人。 ④每一次阶段测试作业成绩记为本学期课程总成绩的20%。 第一部分: 一、填空题 1.信息技术的发展促进了(企业管理模式)的创新。 2.数字化企业的概念源于欧美,是伴随着(互联网)的发展而产生的。 3.人们将研究、分析和处理问题的思想、程序和基本原则称为(方法论)。 4.(信息传输)是从一端将命令或状态信息经信道传送到另一端,并被对方所接收的过程。 5.(信息加工)是对收集来的信息进行去伪存真、去粗取精、由表及里、由此及彼的加工过程。 6.(信息存储)是指将经过加工整理序化后的信息按照一定的格式和顺序存储在特定的载体中的一种信息活动。 7.信息存储介质是指(存储数据)的载体。 8.(信息维护)是指保持信息处于合用的状态 9.信息系统的战略规划是关于信息系统的(长远发展规划)的制定。 10.现行系统中信息的流动关系是以(组织结构)为背景的。 11.业务流程分析可以用(业务流程图)来描述。 12.数据存储表示数据(保存)的地方。 13.采用结构化分析方法绘制数据流程图的基本思想是:(自顶向下、由外向里、逐层分解)。 14.数据字典的使用有两种方式:(人工方式)和(计算机方式)。 15.(结构化语言)是一种介于自然语言与程序设计语言之间的语言。 16.新系统逻辑模型是在(现行系统)逻辑模型的基础上提出来的。 17.(综合计划)是企业一切生产经营、管理活动的纲领性文件。 18.(系统分析报告)是系统分析阶段工作的全面总结,是这一阶段的主要成果。 二、单选题 1.信息系统一般由信息源、信息处理器、信息接收器和( C )组成。 A.信息开发者 B.信息所有者 C.信息管理者 D.信息维护者 2.信息的收集工作是为决策提供依据的(B )。 A.设计工作 B. 初始工作 C.调查工作 D.总结工作 3.管理信息的特征有( A ) A.管理有效性、决策有用性、系统共享性、需求等级性 B.管理有效性、决策有用性、系统独立性、需求共享性 C.管理扩散性、信息传输性、系统独立性、需求等级性 D. 管理扩散性、信息传输性、系统共享性、需求共享性 4.系统的特性有( D ) A.约束性、等级性、增值性 B.扩散性、层次性、开放性

课程考核基本办法(2015-2016-2)

杭州电子科技大学信息工程学院2015-2016学年第二学期《毛泽东思想和建设中国特色社会主义理论体系概论》 课程考核基本办法 一、课程考核构成及所占比重 二、期末考试题型和考试时间另行通知 三、期中考查说明 四、社会实践作业的具体要求。 五、平时成绩及加分情况说明 附件一:推荐阅读书目和纪录片及相关网站 附件二:课程学习推荐网站

一、课程考核构成及所占比重 二、期末考试题型和考试时间另行通知 三、期中考查说明 期中考查内容授课教师根据自己的教学进度等自行决定,因为考查是随堂进行所以没有补考机会。 四、社会实践作业的具体要求。 课外作业(社会调查报告或读书报告)纸质文本在第十四周之前以班级为单位上交给授课教师(超出规定时间上交降低起评分)。 调查报告排版、打印和装订要求:(1)封面(封面模板见下页,要求填好电子版后打印)。(2)调查报告排版要求:纸张A4,页面设置选择Microsoft word 的默认值,字体选择宋体,字号小四,行间距:1.25倍。(3)打印:A4纸双面打印,左侧装订。 (一)社会调查报告 社会调查报告分组进行,每组成员不多于6人,每组选出一名同学当组长,负责召集组员协调完成社会调查。 社会调查报告主题自选,凡是有关当下我国经济、政治、文化、社会、生态现象、问题的社会调查都可以。特别提醒大家不要选择特别大的题目,如中国经济问题调查,这样的题目就完全超出了我们大学生的能力;调查主题的选择尽可能具体,可以选择大学生活中所能涉及的一些问题,如大学生用电习惯调查、大学生业余时间利用情况调查、大学生对专业课程教学满意度调查等等。 2.调查报告 调查报告应包含以下内容:①调查的目的意义,调查数据的获得及数据处理方法(简要叙述即可);②调查报告正文(要求3000字以上),主要是关于调查数据的统计结果的分析、调查结论、针对调查所发现问题的对策、解决思路或建议。 (二)读书报告(或纪录片观后感)的有关要求 1、书目(或纪录片)选择范围参见推荐书目(附件一)。 2、读书报告(或纪录片观后感)主题选择积极向上,字数要求不少于3000字,否则降低起评分。

算法分析与设计复习题及答案

算法分析与设计复习题及答案一、单选题 1.D 2.B 3.C 4.D 5.D 6.D 7.C 8.D 9.B 10.C 11.D 12.B 13.D 14.C 15.C 16.D 17.D 18.D 19.D 20.C 1.与算法英文单词algorithm具有相同来源的单词是()。 A logarithm B algiros C arithmos D algebra 2.根据执行算法的计算机指令体系结构,算法可以分为()。 A精确算法与近似算法B串行算法语并行算法 C稳定算法与不稳定算法D32位算法与64位算法 3.具有10个节点的完全二叉树的高度是()。 A6B5C3D 2 4.下列函数关系随着输入量增大增加最快的是()。 Alog2n B n2 C 2n D n! 5.下列程序段的S执行的次数为( )。 for i ←0 to n-1 do for j ←0 to i-1 do s //某种基本操作 A.n2 B n2/2 C n*(n+1) D n(n+1)/2 6.Fibonacci数列的第十项为( )。 A 3 B 13 C 21 D 34 7.4个盘子的汉诺塔,至少要执行移动操作的次数为( )。 A 11次 B 13次 C 15次 D 17次 8.下列序列不是堆的是()。 A 99,85,98,77,80,60,82,40,22,10,66 B 99,98,85,82,80,77,66,60,40,22,10 C 10,22,40,60,66,77,80,82,85,98,99 D 99,85,40,77,80,60,66,98,82,10,22 9.Strassen矩阵乘法的算法复杂度为()。 AΘ(n3)BΘ(n2.807) CΘ(n2) DΘ(n) 10.集合A的幂集是()。 A.A中所有元素的集合 B. A的子集合 C. A 的所有子集合的集合 D. 空集 11.与算法英文单词algorithm具有相同来源的单词是()。 A logarithm B algiros C arithmos D algebra 12.从排序过程是否完全在内存中显示,排序问题可以分为()。 A稳定排序与不稳定排序B内排序与外排序 C直接排序与间接排序D主排序与辅助排序 13.下列()不是衡量算法的标准。 A时间效率B空间效率 C问题难度D适应能力 14.对于根树,出度为零的节点为()。 A0节点B根节点C叶节点D分支节点 15.对完全二叉树自顶向下,从左向右给节点编号,节点编号为10的父节点编号为()。 A0B2C4D6 16.下列程序段的算法时间的复杂度为()。 for i ←0 to n do for j ←0 to m do

课程考核方案

课程考核方案 系别:信息技术系 课程名称:可视化程序设计 适用专业:软件 学时:其中,理论学时:实践学时: 学分:(适用于学分制教学计划) 一、设课目的:本课程是信息技术系各专业学生的一门专业课程,具有较强的实践性。本课程的教学目标是培养能够利用可视化的编程方法独立地开发和设计小型系统、并能够 进行相应管理工作的应用型专门人才。通过理论和实践教学,使学生了解的对象、属性 和方法等基本概念和特点;掌握中的数据类型、函数、控制结构的使用方法;熟悉窗体 定义及各种控件的使用,了解与数据库的连接。最后通过一个具体的开发实例使学生初 步具有独立的开发和设计、代码编写、系统管理与维护的能力,同时具备熟练地阅读、理 解他人程序的能力。同时了解软件开发过程中各种文档及相应规划书编写。 二、课程教学内容和教学目标:本课程通过理论和实践教学,使学生了解的对象、 属性和方法等基本概念和特点;掌握中的数据类型、函数、控制结构的使用方法;熟悉窗 体定义及各种控件的使用,了解与数据库的连接。最后通过一个具体的开发实例使学生 初步具有独立的开发和设计、代码编写、系统管理与维护的能力。 三、课程考试方案:主要应包括以下几项内容: 、考核内容 见附录 、评分标准: ()平时成绩:(分) 上课的出勤情况、纪律情况、学习的态度。(分) 课后四次作业的完成情况。(分) ()三次阶段上机操作考试。(占*分) ()期末上机综合题考试。(占分) 综合项目考核题目——医院出诊专家信息管理系统 建立工程文件(分) 模块的设计:(分) 工程启动对象的设置(分)

登录窗体的设计及实现:(分) 主窗体的设计及实现:(分) 信息管理子窗体的设计及实现:(分) 完成添加、修改、删除、清除、退出功能 信息查询功能的实现。(分) 程序中的错误处理(分) 其它(分) 、考核方法 期末项目考核题目——医院出诊专家信息管理系统:以开卷的形式,实现工程的建立,模块的设计,窗体的添加,界面的控件选择及风格设计,添加、修改、删除、退出系统功 能的代码实现等等。 、成绩构成要素 其中平时成绩占分,阶段考试分,期末上机考试分。 、组织形式 由于课程的实践性极强,过程考核内容多,可以由任课教师在平时组织实施。 合班课需要安排监考教师分班考试。 、考核时间 期末项目考核题目——医院出诊专家信息管理系统:教学周第周 、补考方式 上机考试分 、考核地点 上课实验室 四、教材及参考资料 《可视化程序设计》大连理工大学出版社 《程序员参考手册》电子工业出版社 《程序设计》清华大学出版社 五、其他有关说明或要求 方案制定人签字: 教研室主任(专业负责人)签字: 系主任签字: 年月日

最新算法分析与设计作业(一)及参考答案讲课讲稿

《算法分析与设计》作业(一) 本课程作业由两部分组成。第一部分为“客观题部分”,由15个选择题组成,每题1分,共15分。第二部分为“主观题部分”,由简答题和论述题组成,共15分。作业总分30分,将作为平时成绩记入课程总成绩。 客观题部分: 一、选择题(每题1分,共15题) 1、递归算法:(C ) A、直接调用自身 B、间接调用自身 C、直接或间接调用自身 D、不调用自身 2、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的字问题,这些子问题:(D ) A、相互独立 B、与原问题相同 C、相互依赖 D、相互独立且与原问题相同 3、备忘录方法的递归方式是:(C ) A、自顶向下 B、自底向上 C、和动态规划算法相同 D、非递归的 4、回溯法的求解目标是找出解空间中满足约束条件的:(A ) A、所有解 B、一些解 C、极大解 D、极小解 5、贪心算法和动态规划算法共有特点是:( A ) A、最优子结构 B、重叠子问题 C、贪心选择 D、形函数 6、哈夫曼编码是:(B) A、定长编码 B、变长编码 C、随机编码 D、定长或变长编码 7、多机调度的贪心策略是:(A) A、最长处理时间作业优先 B、最短处理时间作业优先 C、随机调度 D、最优调度 8、程序可以不满足如下性质:(D ) A、零个或多个外部输入 B、至少一个输出 C、指令的确定性 D、指令的有限性 9、用分治法设计出的程序一般是:(A ) A、递归算法 B、动态规划算法

C、贪心算法 D、回溯法 10、采用动态规划算法分解得到的子问题:( C ) A、相互独立 B、与原问题相同 C、相互依赖 D、相互独立且与原问题相同 11、回溯法搜索解空间的方法是:(A ) A、深度优先 B、广度优先 C、最小耗费优先 D、随机搜索 12、拉斯维加斯算法的一个显著特征是它所做的随机选性决策有可能导致算法:( C ) A、所需时间变化 B、一定找到解 C、找不到所需的解 D、性能变差 13、贪心算法能得到:(C ) A、全局最优解 B、0-1背包问题的解 C、背包问题的解 D、无解 14、能求解单源最短路径问题的算法是:(A ) A、分支限界法 B、动态规划 C、线形规划 D、蒙特卡罗算法 15、快速排序算法和线性时间选择算法的随机化版本是:( A ) A、舍伍德算法 B、蒙特卡罗算法 C、拉斯维加斯算法 D、数值随机化算法 主观题部分: 二、写出下列程序的答案(每题2.5分,共2题) 1、请写出批处理作业调度的回溯算法。 #include #include using namespace std; class Flowing { friend int Flow(int ** ,int ,int []); private: //int Bound(int i); void Backtrack(int t); int **M;// int *x;//当前解

《算法分析与设计》期末试题及参考答案

《算法分析与设计》期末试题及参考答案 一、简要回答下列问题: 1.算法重要特性是什么? 1.确定性、可行性、输入、输出、有穷性 2. 2.算法分析的目的是什么? 2.分析算法占用计算机资源的情况,对算法做出比较和评价,设计出额更好的算法。 3. 3.算法的时间复杂性与问题的什么因素相关? 3. 算法的时间复杂性与问题的规模相关,是问题大小n的函数。 4.算法的渐进时间复杂性的含义? 4.当问题的规模n趋向无穷大时,影响算法效率的重要因素是T(n)的数量级,而其他因素仅是使时间复杂度相差常数倍,因此可以用T(n)的数量级(阶)评价算法。时间复杂度T(n)的数量级(阶)称为渐进时间复杂性。 5.最坏情况下的时间复杂性和平均时间复杂性有什么不同? 5. 最坏情况下的时间复杂性和平均时间复杂性考察的是n固定时,不同输入实例下的 算法所耗时间。最坏情况下的时间复杂性取的输入实例中最大的时间复杂度: W(n) = max{ T(n,I) } , I∈Dn 平均时间复杂性是所有输入实例的处理时间与各自概率的乘积和: A(n) =∑P(I)T(n,I) I∈Dn 6.简述二分检索(折半查找)算法的基本过程。 6. 设输入是一个按非降次序排列的元素表A[i:j] 和x,选取A[(i+j)/2]与x比较, 如果A[(i+j)/2]=x,则返回(i+j)/2,如果A[(i+j)/2]

相关文档
最新文档