算法设计与分析大作业西安电子科技大学

算法设计与分析大作业西安电子科技大学
算法设计与分析大作业西安电子科技大学

算法设计技术与方法

学院电子工程学院专业电子与通信工程学号

学生姓名

授课教师公茂果

问题一

1 问题描述

分别实现多项式求值的三种运算,针对不同规模的输入值a,各算法的运行时间,问题规模n分别取10, 50, 100, 150, 200, 300, 400, 500, 10000, 20000, 50000, 100000时绘制三种算法运行时间的比较图。

2 算法分析

1)算法1:P n(x) = P n-1(x) + a n x n→P i(x) = P i-1(x) + a i x i

该算法的伪代码表示如下:

begin

P := a0;

for i=1 to n do

P = P + a i x i;

end

end

该算法的时间复杂度为T(n) = O(n2)。

2)算法2:在上一算法中,可以看出xi重复计算了。如果

把上一次计算出的xi-1保存起来,直接乘以x,就可以得到xi,这样就可以避免重复计算。

该算法的伪代码表示如下:

begin

P := a0;

Q := 1;

for i=1 to n do

Q = Qx;

P = P + a i Q;

end

end

该算法的时间复杂度为T(n) = O(n)。

3)算法3:P n(x) = P’n-1(x)x+a0,

P’n-1(x)=a n x n-1+a n-1x n-2+…+a2x+a1

→P’i(x)=P’i-1(x)x+a n-i

该算法的伪代码表示如下:

begin

P := a n;

for i=1 to n do

P = xP + a n-i;

end

end

该算法的时间复杂度为T(n) = O(n)。

3 实验数据

下表为实验中所测得的数据:

4 实验结果图

下图为用所测得的数据画出的运行时间对比图,横轴为多项式的规模n,纵轴为运行时间。为了便于观察,横坐标采用了对数坐标。

从上图可以看出,在多项式的规模n < 1000时,这三种算法的运行时间都差不多。在n > 1000时,可以明显地看出算法2和算法3的优越性。由于算法2和算法3的时间复杂度都为O(n),所以这两种算法的运行时间差不多。

三种算法的运行时间曲线与前面分析的三种算法的时间复杂度也是相吻和的:算法1的时间复杂度为O(n2),运行

时间随着n的增长呈平方律增长;算法2和算法3的时间复杂度为O(n),运行时间随着n的增长而线性增长。

5 源代码

3)% polyval1.m ---- 算法1的实现

function val = polyval1(a, x) % 该函数用来实现算法1 n = length(a);

val = a(1);

for i = 1:(n-1)

val = val + a(i+1)*x^i;

end;

3)% polyval2.m ---- 算法2的实现

function val = polyval3(a, x) % 该函数用来实现算法2 n = length(a);

val = a(1);

temp = 1;

for i = 1:(n-1)

temp = temp * x;

val = val + a(i+1)*temp;

end;

3)% polyval3.m ---- 算法3的实现

function val = polyval4(a, x) % 该函数用来实现算法3 n = length(a);

val = a(n);

for i = 1:(n-1)

val = val * x + a(n - i);

end;

3)% main.m ---- n取不同值时,分别计算3种算法的运行时间

n = [10 50 100 150 200 300 400 500 10000 20000 50000 100000];

x = 1.001; % x取1.001以下才能保证结果不溢出

for i = 1:length(n)

a = rand(n(i), 1);

origin_time = cputime;

for j = 1:500

polyval1(a, x);

end;

time1(i) = (cputime - origin_time)/500; % 计算算法1的运行时间

origin_time = cputime;

for j = 1:1000

polyval2(a, x);

end;

time2(i) = (cputime - origin_time)/1000; % 计算算法2

的运行时间

origin_time = cputime;

for j = 1:1000

polyval3(a, x);

end;

time3(i) = (cputime - origin_time)/1000; % 计算算法3的运行时间

end;

save data time1 time2 time3 %保存数据

load data %加载数据

% 画图

semilogx(n, time1,'-b*', n, time2, ':b*', n, time3, '-.b*'); xlabel('n'),ylabel('时间/s');

legend('算法1','算法2','算法3');

grid on

问题二 1 问题描述

分别实现矩阵相乘的3种算法,比较三种算法在矩阵大小分别为22×22, 23×23,24×24, 25×25, 26×26, 27×27, 28×28, 29×29时的运行时间与MATLAB 自带的矩阵相乘的运行时间,绘制时间对比图。 2 算法分析

1) 算法1:按照矩阵相乘的定义,直接计算。

1[][][][][][]

n

k C i j A i k B k j ==∑

若依此定义来计算A 和B 的乘积矩阵C ,则每计算C 的一个元素C [i ][j ],需要做n 次乘法和n-1次加法。因此,算出矩阵C 的每个元素所需的计算时间为O(n 3)。 2) 算法2:采用分治法。

将矩阵A ,B 和C 中每一矩阵都分块成4个大小相等的子矩阵。由此可将方程C=AB 重写为: C 11 = A 11B 11 + A 12B 21 C 12 = A 11B 12 + A 12B 22 C 21 = A 21B 11 + A 22B 21 C 22 = A 21B 12 + A 22B 22

再把A 11,A 12,A 21,A 22,B 11,B 12,B 21,B 22分别分成4个大小相等的子矩阵,这样依次下去,直到子矩阵为1

阶矩阵为止。

此时的时间复杂度为O(n 3),与上面的算法相比,并没有减少时间复杂度。

3) 算法3:利用Strassen 矩阵乘法

111211121112212221

222122C C A A B B C C A A B B ??????= ? ?????????

1111222211122232122114222111511221122612222122711211112()()()()()()()()()()

M A B B M A A B M A A B M A B B M A A B B M A A B B M A A B B =-=+=+=-=++=-+=-+ 11542612122134

225137C M M M M C M M C M M C M M M M =+-+=+=+++--

再把A 11,A 12,A 21,A 22,B 11,B 12,B 21,B 22分别分成4个大小相等的子矩阵,这样依次下去,直到子矩阵为1阶矩阵为止。

此算法的时间复杂度为O(n 2.81),比以上两种算法的时间复杂度都小。 3 实验数据

下表为实验中所测得的数据:

4 实验结果图

下图为实验结果图,横轴为矩阵规模的幂次,纵轴为运行时间。

算法1和MATLAB自带算法运行时间很短,曲线几乎与横轴重合,所以图中看不太清楚。

理论上,算法3要比算法1的运行时间要短一些,但是算法2和算法3采用的是递归调用,递归调用时所消耗的时间占了整个运行时间的很大一部分。所以即使算法3比算法1的时间复杂度小,前者比后者的运行时间还是多了很多。

从算法2和算法3的运行时间图中可以看出,算法3比算法2所用的时间少了很多,这与理论是相吻和的。

5 源代码

1)% multiply1.m ---- 算法1的实现

function C = multiply1(A, B) % 该函数用来实现算法1 n = size(A, 1);

for i = 1 : n

for j = 1 : n

C(i, j) = A(i, :) * B(:, j);

end;

end;

2)% multiply2.m ---- 算法2 的实现

function C = multiply2(A, B) % 该函数用来实现算法2 n = size(A, 1);

if(n == 1)

C = A * B; % 此时A,B为两个1阶矩阵

else

% 矩阵分成4个大小相等的子矩阵

A11 = A(1 : n/2, 1 : n/2);

A12 = A(1 : n/2, n/2+1 : n);

A21 = A(n/2+1 : n, 1 : n/2);

A22 = A(n/2+1 : n, n/2+1 : n);

B11 = B(1 : n/2, 1:n/2);

B12 = B(1 : n/2, n/2+1 : n);

B21 = B(n/2+1 : n, 1 : n/2);

B22 = B(n/2+1 : n, n/2+1 : n);

% 递归调用

C11 = multiply2(A11, B11) + multiply2(A12, B21);

C12 = multiply2(A11, B12) + multiply2(A12, B22);

C21 = multiply2(A21, B11) + multiply2(A22, B21);

C22 = multiply2(A21, B12) + multiply2(A22, B22);

C = [C11 C12; C21 C22]; % 矩阵合成

end;

4)% multiply3.m ---- 算法3 的实现

function C = multiply3(A, B) % 该函数用来实现算法3

n = size(A, 1);

if(n == 1)

C = A * B;

else

% 矩阵分块

A11 = A(1 : n/2, 1 : n/2);

A12 = A(1 : n/2, n/2+1 : n);

A21 = A(n/2+1 : n, 1 : n/2);

A22 = A(n/2+1 : n, n/2+1 : n);

B11 = B(1 : n/2, 1:n/2);

B12 = B(1 : n/2, n/2+1 : n);

B21 = B(n/2+1 : n, 1 : n/2);

B22 = B(n/2+1 : n, n/2+1 : n);

% 递归调用

M1 = multiply3(A11, B12 - B22);

M2 = multiply3(A11 + A12, B22);

M3 = multiply3(A21 + A22, B11);

M4 = multiply3(A22, B21 - B11);

M5 = multiply3(A11 + A22, B11 + B22);

M6 = multiply3(A12 - A22, B21 + B22);

M7 = multiply3(A11 - A21, B11 + B12);

C11 = M5 + M4 - M2 + M6;

C12 = M1 + M2;

C21 = M3 + M4;

C22 = M5 + M1 - M3 - M7;

C = [C11 C12; C21 C22]; % 矩阵合成

end;

4)% main.m ---- 测量4种算法在不同规模下运行时间

for i = 2:9

A = rand(2^i);

B = rand(2^i);

n = [0 100 100 10 10 1 1 1 1 1 1 1]; % 规模比较小时,通过多少循环计

% 算时间,规模大时,直接计算

% 计算算法1的运行时间

origin_time = cputime;

for j = 1:n(i)

C1 = multiply1(A, B);

end;

time1(i) = (cputime - origin_time)/n(i);

% 计算算法2的运行时间

origin_time = cputime;

for j = 1:n(i)

C2 = multiply2(A, B);

end;

time2(i) = (cputime - origin_time)/n(i);

% 计算算法3的运行时间

origin_time = cputime;

for j = 1:n(i)

C3 = multiply3(A, B);

end;

time3(i) = (cputime - origin_time)/n(i);

% 计算MATLAB自带算法的运行时间origin_time = cputime;

for j = 1:n(i)

C4 = A * B;

end;

time4(i) = (cputime - origin_time)/n(i);

end;

save time time1 time2 time3 time4 % 保存实验数据

load time time1 time2 time3 time4 % 加载数据

% 画图

n = [1 2 3 4 5 6 7 8 9];

plot(n, time1,'-b*', n, time2, ':b*', n, time3, '-.b*', n, time4, '--b*');

xlabel('n'),ylabel('时间/s');

legend('算法1','算法2','算法3','MATLAB算法');

grid on

西安电子科技大学 数字电路基础 答案

习题4 4-3 解:该电路的输入为3x 2x 1x 0x ,输出为3Y 2Y 1Y 0Y 。真值表如下: 由此可得:1M =当时,33 2 321210 10 Y x Y x x Y x x Y x x =??=⊕?? =⊕??=⊕? 完成二进制至格雷码的转换。 0M =当时,33 2 32 132121 321010 Y x Y x x Y x x x Y x Y x x x x Y x =??=⊕?? =⊕⊕=⊕??=⊕⊕⊕=⊕? 完成格雷码至二进制的转换。

4-9 设计一个全加(减)器,其输入为A,B,C 和X(当X =0时,实现加法运算;当X =1时,实现减法运算),输出为S(表示和或差),P (表示进位或借位)。列出真值表,试用3个异或门和3个与非门实现该电路,画出逻辑电路图。 解:根据全加器和全减器的原理,我们可以作出如下的真值表: 由真值表可以画出卡诺图,由卡诺图得出逻辑表达式,并画出逻辑电路图: A B C X P 4-10 设计一个交通灯故障检测电路,要求红,黄,绿三个灯仅有一个灯亮时,输出F =0;

若无灯亮或有两个以上的灯亮,则均为故障,输出F =1。试用最少的非门和与非门实现该电路。要求列出真值表,化简逻辑函数,并指出所有74系列器件的型号。 解:根据题意,我们可以列出真值表如下: 对上述的真值表可以作出卡诺图,由卡诺图我们可以得出以下的逻辑函数: F AB AC BC A B C AB AC BC A B C =+++=??? 逻辑电路图如下所示: A F 4-13 试用一片3-8译码器和少量逻辑门设计下列多地址输入的译码电路。 (1) 有8根地址输入线7A ~1A ,要求当地址码为A8H,A9H ,…,AFH 时,译码器输出为 0Y ~7Y 分别被译中,且地电平有效。 (2) 有10根地址输入线9A ~0A ,要求当地址码为2E0H,2E1H, …,2E7H 时,译码器输 出0Y ~7Y 分别被译中,且地电平有效。

《ACM算法与数据结构设计》大作业

《ACM算法与数据结构设计》课程大作业报告 题目:五位以内的对称素数 学生姓名 班级学号 学生学院计算机软件学院 学生专业计算机科学与技术 联系电话 电子邮 指导教师 指导单位计算机学院软件工程系 日期2011.5.24

注意事项 (1)课程大作业从《ACM算法与数据结构设计》课程实验二(2011年4月19日)或实验三(2011年5月10日)中任选一个课题完成。(2)课程大作业内容包括课题名称、课题内容和要求、课题分析、概要设计、详细设计、测试数据及其结果分析、调试过程中的问题、参考资料列表、课程小结等。 (3)课程报告可以打印,也可以手写,但前面两页内容、大作业撰写纲要、课程小结不可遗漏和更换。 (4)课程小结给出ACM程序设计过程的收获、遇到的问题,遇到问题解决问题过程的思考、程序调试能力的思考等,需要手写签字。(5)课程大作业提交时间为2011年5月24日(第14周星期二)晚19:00~20:00,地点:计算中心A机房。

一、课题名称: 五位以内的对称素数 二、课题内容和要求: 题目:判断一个数是否为对称且不大于五位数的素数。 要求:判断输入的一组数据(正整数)是否是五位以内的对称素数,逐个判断并输出“yes”或“no” 三、课题分析: 定义两个函数分别判断数据是否为素数(bool isprime(int n)),是否是对称数(bool issym(int n));在main()函数中利用if()语句来判断该数据是否是五位以内的数。只有同时满足三个条件,才能判断一个数据是五位以内的对称素数,输出“yes”;否则输出“no”。 输入输出方案: 输入: 输入数据含有不多于50个的正整数(0

教学大纲-西安电子科技大学

西安电子科技大学高等职业技术学院 “高等数学”教学大纲 一、教材内容的范围及教学时数 根据教育部高职高专规划教材之高等数学,其内容的范围包括:一元函数微积分学及其应用, 一元函数积分学及其应用,向量代数与空间解析几何,多元函数积分学,无穷级数,常微分方程。 教学时数:144学时课程类别:必修学分:9 学期:第一、二学期使用范围:工科所有专业及电子商务专业 二、教学的目的及要求 要求学生全面的掌握高等数学所涉及的基本概念,基本理论和基本运算能力的技巧,具有大专学习所必需的抽象思维能力、逻辑推理能力、空间想象能力以及综合运用所学知识分析问题和解决问题的能力。具体要求可分为较高要求和一般要求两个层次: 较高要求需要学生深入理解、巩固掌握、熟练应用,其中概念、理论用“理解”一词表述;方法、运算用“掌握”一词表述;一般要求也是不可缺少的,只是在要求上低于前者,其中概念、理论用“了解”一词表述;方法、运算用“会”或“了解”一词表述。 1.函数、极限、连续及具体要求 (1)理解函数的概念,掌握函数的表示方法 (2)了解函数的有界性、单调性、奇偶性和周期性 (3)理解复合函数概念,了解反函数和隐函数的概念 (4)掌握基本初等函数的性质及图像 (5)会建立简单应用问题的函数关系式 (6)理解数列极限和函数极限的概念,理解函数的左右极限的概念以及极限存在与左右极限之间的关系 (7)掌握极限的性质与四则运算法则 (8)掌握极限存在的两个重要准则,并会利用其求极限 (9)掌握两个重要极限的方法 (10)理解无穷小、无穷大的阶的概念 (11)理解函数连续性的概念,会判断间断点的类型 (12)了解初等函数连续性的闭区间上的连续性质(最大值、最小值和解介值定理)会解答相关的应用问题 2.一元函数微分学及具体要求 (1)理解导数的概念及其几何意义,会求平面曲线的切线与法线方程 (2)了解导数的物理意义,会用导数描述一些物理量 (3)理解函数的可导性与连续性之间的关系 (4)掌握导数的四则运算法则和复合函数的求导法则,会求反函数的导数 (5)掌握基本初等函数的求导公式,了解初等函数的可导性

西安电子科技大学人工智能试题

1.(该题目硕士统招生做)请用框架法和语义网络法表示下列事件。(10分) 2015年2月20日上午11点40分,广东省深圳市光明新区柳溪工业园附近发生山体滑坡,经初步核查,此次滑坡事故共造成22栋厂房被掩埋,涉及公司15家,截至目前已安全撤离900人,仍有22人失联。 答:框架表示法(5分):(给分要点:确定框架名和框架槽,根据报道给出的相关数据填充,主要内容正确即可给分,不必与参考答案完全一致) <山体滑坡> 时间:2015年2月20日上午11点40分 地点:广东省深圳市光明新区柳溪工业园附近 掩埋厂房:22栋 涉及公司数目:15家 安全撤离人数:900人 失联人数:22人 语义网络表示法(5分):(给分要点:确定语义网络的节点及其连接关系,根据报道内容进行填充,主要内容正确即可给分,不必与参考答案完全一致) 1. (该题目全日制专业学位硕士做)请用一种合适的知识表示方法来表示下面知识。(10分) How Old Are YOU是微软推出的一款测年龄应用,该应用架设在微软服务平台Azure上,该平台具有机器学习的开发接口,第三方开发者可以利用相关的接口和技术,分析人脸照片。

(给分要点:采用合适的知识表示方法,正确即可给分,不必与参考答案完全一致) 答: 类属(继承):<应用程序> 用途:测年龄 开发者:微软 服务平台: 开发接口:机器学习 用途:分析人脸照片 2.(该题目硕士统招生做)请用归结反演的方法求解下述问题。(15分) 已知:张和李是同班同学,如果x和y是同班同学,则x的教室也是y的教室,现在张在302教室上课。 问:现在李在哪个教室上课? 解:第一步:定义谓词;(谓词不一定与参考答案完全相同,只要正确表示即可给分)(3分)C(x, y) x和y是同班同学; At(x, u) x在u教室上课。 第二步:根据定义的谓词写出上述知识的谓词表示,并化成子句集;(6分) 把已知前提用谓词公式表示如下: C(zhang, li) (?x) (?y) (?u) (C(x, y)∧At(x, u)→At(y,u)) At(zhang, 302) 把目标的谓词公式表示如下: (?v)At(li, v) 把上述公式化为子句集: (1) C(zhang, li) (2) ﹁C(x, y)∨﹁At(x, u)∨At(y, u) (3) At(zhang, 302) 把目标的否定化成子句式: (4) ﹁At(li,v) ∨Answer(v) 第三步:使用归结原理对子句集进行归结;(6分)(注意:具体的归结顺序不一定和参考答案完全一致,只要归结过程正确,最后得到的答案正确即可给分)

西安电子科技大学单片机考试试卷

西安电子科技大学本科课程考试试卷2008—2009学年第一学期《单片机原理与接口技术》 课程A卷 专业年级:07电信命题教师:郭文川审题教师: 考生班级:学号:考生姓名: 一、填空题:(每空1分,共20分) 1、MCS—5l单片机的最大程序寻址空间是64 KB,该空间的地址范围从0000H 至0FFFFH,系统上电及复位后,程序入口地址为0000H。 2、若由程序设定PSW中的RS1、RS0=01,则工作寄存器R0~R7的直接地址为08H~0FH。 3、MCS-51单片机的I/O端口采用统一编址方式。、 4、一个8位D/A转换器其分辨率为_ 1/256 ,若该8位D/A转换器的基准电压为5V, 则数字量100对应得模拟量为 1.953V(5*100/256V)。 5、单片机系统中经常采用的地址译码技术包括线选法和译码法。 6、INTEL 8051 CPU 是8 位的单片机,其内部有4 KB的ROM。 7、指出下列各指令中源操作数的寻址方式。 (1)MOVC A,@A+DPTR (变址寻址) (2)XCH A,@R0;(寄存器间接寻址) (3)MOV C,P1.0 (位直接寻址) (4)JC LOOP (相对寻址) 8、判断下列各条指令的书写格式是否有错,并指出原因。 (1)MUL R0,R1 (错,乘法指令用A×B ) (2)MOV A, @R7 (错,@R7非法)

(3)MOV A, #3000H (错,累加器A为8位存储器) (4)MOV R1, C (错,C为进位位不能送给寄存器R1) 二、选择题:(每题1分,共10分) 1.当MCS-51单片机接有外部存储器时,P2口可作为 D 。 A.数据输入口 B. 数据的输出口 C.准双向输入/输出口D.高8位地址线 2.单片机的并行接口中,作为数据线使用的并行口是 A 。 A.P0 B. P1 C. P2 D. P3 3.MCS—5l单片机的堆栈区是设置在 C 中。 A.片内ROM区B.片外ROM区 C.片内RAM区 D. 片外RAM区 4.片内RAM的20H~2FH为位寻址区,所包含的位地址是。 A.00H~20H B. 00H~7FH C.20H~2FH D.00H~FFH 5.在寄存器间接寻址方式中,间址寄存器中存放的数据是。 A.参与操作的数据B.操作数的地址值 C.程序的转换地址D.指令的操作码 6.当需要从MCS-51单片机程序存储器取数据时,采用的指令为。 A. MOV A, @R1 B.MOVC A, @A + DPTR C. MOVX A, @ R0 D.MOVX A, @ DPTR 7. 能够用紫外光擦除ROM中程序的只读存储器称为。 A.掩膜ROM B.PROM C.EPROM D.EEPROM 8. 在片外扩展一片2716程序存储器芯片要地址线。 A.8根 B.13根 C.11根 D.20根 9. 定时器/计数器工作方式1是。 A. 8位计数器结构 B. 2个8位计数器结构 C. 13位计数结构 D. 16位计数结构 10.T0中断的中断入口地址为。 A. 0003H B. 000BH C. 0013H D. 001BH 三、分析程序,写出结果(每空3分,共18分) 1、已知(A)=83H,(R0)=17H,(17H)=34H,执行下列程序段后(A)= 0CBH 。

《程序设计与算法综合实践》期末大作业题目及评分标准

2017级《程序设计与算法综合实践》 期末大作业题目及评分标准 有如下情况之一者,为不及格。 (1)未能完成所选题目评分标准的最低要求。 (2)抄袭他人成果。 (3)大作业检查时不带电脑,或电脑没有C语言开发环境。 (4)出勤次数、课堂表现等不符合学校相关教学文件规定等其他情况。 备选题目目录 1.图书购买系统...............................................................................................................- 2 - 2.物流信息管理系统 ....................................................................................................- 3 - 3.PM2.5实时信息管理系统 ............................................................ - 5 - 4.电影评论系统 ............................................................................... - 6 - 5.游戏角色属性分析........................................................................ - 8 - 6.KTV点歌系统 ................................................................................ - 9 - 7.英语词斩系统 ............................................................................. - 11 - 8.校运动会成绩管理系统.............................................................. - 14 - 9.通讯录管理系统 ......................................................................... - 15 - 10.机票购买系统 ............................................................................. - 16 - 11.车辆销售管理系统...................................................................... - 17 - 12.饮品自动贩卖机系统.................................................................. - 18 -

西安电子科技大学电子信息科学与技术专业培养方案新整理新

电子信息科学与技术专业培养方案 一、培养目标及规格 电子信息科学与技术专业旨在培养爱国进取、创新思辨、具有扎实的数理、计算机及外语基础,具备电子信息方面的基本知识和技能,具有较强的无线电物理与微波、毫米波技术相结合的能力,具有较好的科学素养及一定的研究、开发和管理能力,具有创业和竞争意识,具有国际视野和团队精神,能适应技术进步和社会需求变化的行业骨干和引领者。 电子信息科学与技术专业针对不同发展要求的学生,确定专业学术型、工程实践型、就业创业型三种人才培养规格。 1.“专业学术型”:在学习的奠基阶段,强调打好数理、计算机及外语基础;在积累成长阶段针对专业学术型的学生进行电子信息基本知识和技能,无线电物理与微波、毫米波技术等方面初步培养;在能力强化阶段进一步加强技术创新和综合设计能力训练并对在该学科方向开展科学研究做好准备。毕业生可报电磁场与微波技术、无线电物理、无线通信等专业的研究生继续深造。 2.“工程技术型”:培养具有良好的数理基础和专业基础知识的技术创新与综合设计人才。掌握熟练的专业技能,具有工程素质,动手能力强,毕业生可从事工程技术应用与开发设计工作。 3.“就业创业型”:培养不但具有良好的数理基础和专业基础知识而且具备良好的外语沟通能力,知识更新能力,技术创新能力以及管理能力的人才。掌握较好的专业技能及工程素养,动手能力强。毕业生可以从事工程技术应用和管理工作。 二、基本要求 (一)知识结构要求 本专业按照4年制进行课程设置及学分分配。知识结构要求如下: 一、二年级主要学习公共基础课程,主要掌握高等数学、大学物理、外语和电路分析基础等基础知识。三、四年级主要学习专业基础课和专业课,主要包括电磁场与电磁波、微波技术、和微波遥感专业基础知识。使学生通过学习掌握扎实的数理基础和电子信息科学与技术专业方面的专门知识。 1. 公共基础知识:具有扎实的高等数学、大学物理、英语、计算机、人文社会科学基础知识。 2. 学科基础知识:掌握电路分析基础、信号与系统、模拟电子技术基础、数字电路与逻辑设计、微机原理与系统设计、数学物理方程、数值计算方法的相关专业知识。 3. 专业知识:掌握天线原理、量子力学、电磁场理论、电波传播概论、通信原理、微波技术基础的专业知识。 4. 实践类知识:具有电波测量实验、电子电磁技术实验、专业特色实验(微波应用)等的专业知识。 5. 能力素质知识:了解电波传播相关专业的最新动态,微波、毫米波天线技术方面的

西安电子科技大学《电路基础》第三章部分习题解

习题三 3.3如题图3.3所示,求电压u,如果独立电压源的均值增至原值的2倍,独立电流源的值降为原值的一半,电压u变为多少? Ω3 1 i A Ω 2 V1 图3.3 解:仅考虑电压源(电流源开路) Ω3 1 i Ω 2 V1 对节点a列写节点方程 (1/3+1/6) a u=1/3+10/6 所以 a u=4V 3 1 i+1=4 则1i=1A 1 u+4?2+(-1)+3?(-1)=0 则1u=-4V 仅考虑电流源(电压源短路) Ω3 1 i Ω 2

1i =3?2/3=2A i =4-21i =1A 2u +4?1-3?2-2?3=0 故 2u =8V 所以 u =1u +2u =4V 当电压源增至2倍时,电流源降为原来的一半时,V u u 8211-==' V u u 421 22==' ='∴u V u u 421-=' +' 3.4如题图3.4所示电路,N 为不含独立源的线性电路,已知当s u =12V ,s i =4A 时,u =0V ;当s u =-12V ,s i =-2A 时,u =-1V ;求当s u =9V ,s i =-1A 时的电压u 。 s u 图3.4 解:u =1k s u +2k s i 根据题意列方程有: 121k +42k =0 -121k -22k =-1 解之有: 1k =1/6 2k =-1/2 即 u =1/6s u -1/2s i 故当s u =9V ,s i =-1A 时,u =2V 3.5当开关s 位置在1时,I =40mA,s 在位置2时,I =-60mA ,求s 在位置3时,I =?

V 图3.5 解:当开关s 位置在2时,电路图可以看成下图的叠加 V 4 所以,I '=I =40mA I ''=k 1s u I =I '+I ''=40mA+k 1s u =-60mA 所以k 1s u =-100mA 同理,若s 在位置3 I =I '+I ''=40mA+k 2s u 2 3 4621-=-=∴ s s u u k 2s u =150mA 故 I =190mA 3.8 N 为不含独立源的线性电阻电路,输出电压u =1/2s u ;若数处端 接5Ω电阻,u =1/3s u 问:输出端接3Ω电阻时,u 与s u 的关系。 +- u 图3.8 解:根据戴维南定理,电路等效为电压源和电阻串连

软件系统分析与设计大作业

《软件系统分析与设计》 期末大作业 选题名称:游戏平台管理系统设计人:徐文豪刘青海 赖超宇甘智宏 班级:软工143班 南昌大学软件学院 2016.6.1

目录 一、整体描述 (2) 二、需求分析 (3) 三、系统功能概况 (4) 四、类的属性与方法 (5) 五、系统界面界限 (11) 六、设计模型 (13) 七、设计原则 (17) 八、设计模式······················

一、整体描述 随着移动通讯的发展,手机应用也越来越多,其中,游戏应用占据了很大的比重,游戏平台管理系统是整合了大量游戏应用,以及玩家线上交流的平台。 主要受众群:拥有移动端或电脑端的人群。 应用前景:移动互联的发展为游戏平台的发展提供了很大的生存空间,应用前景十分广阔 盈利方式:向平台中游戏的开发商收取一定的费用,游戏玩家向游戏中注入资金时,收取一定比例的游戏收入。 面临的困难:游戏平台前期的推广,提高游戏平台本身对开发商和游戏玩家的吸引力,游戏平台能否适应大部分游戏玩家的要求。 玩家首先要注册账号,然后就可以在上面下载游戏应用,上传自己的游戏资源。同时,根据玩家的活跃程度获取相应积分,用积分可以兑换游戏礼包,也会根据玩家等级在游戏装备上给与相应的优惠和等级奖励。玩家在每一款游戏的评论区都可以交流游戏经验,提出意见和建议,以便游戏及时更新,弥补相应不足。玩家也可以建立游戏工会,不同游戏的玩家都可以加入,分享自己的游戏心得或者转赠游戏装备或积分。

二、需求分析 时间when:游戏厂商:随时;注册用户:随时;管理人员:正常工作时间。 地点Where:游戏厂商,管理人员:工作地点;注册用户:随地 人员who:游戏厂商,管理人员,注册用户, What:游戏厂商:推广游戏,管理人员:扩大服务,盈利;注册人员:玩游戏。 Why:游戏厂商:推广力度不大,效果不好,管理人员:方便管理,注册用户:良好的游戏环境。 性能Performance:系统提供服务的效率,响应时间快,由于是手机端的APP吞吐量不需要太大。 成本Cost:实现系统需要付出的代价,耗费****元 时间Time:2016年6月3日 可靠性Reliability: 需要系统长时间正确运行的能力 安全性Security: 由于该平台会涉及资金的流动,所以需要对信息安全的保护能力。 合规性Compliance: 需要符合各种行业的标准,法律法规,规范。技术性Technology:要求基于安卓平台开发。 兼容性Compatibility:需要与一些支付平台进行兼容能力。还有对游戏的兼容性。

西安电子科技大学网教数字逻辑电路模拟题资料

西安电子科技大学网教数字逻辑电路模拟 题

模拟试题一 一、单项选择题(每题 2分,共30分) 1 、下列数中最大的数是 [ ] 。 A ( 3.1 ) H B ( 3.1 ) D C (3.1) O D (11.1) B 2 、( 35.7 ) D 的余 3BCD 是 [ ] 。 A 00110101.0111 B 00111000.1010 C 00111000.0111 D 01101000.1010 3 、与非门的输出完成 F= , 则多余输入端 [ ] 。 A 全部接高电平 B 只需一个接高电平即可 C 全部接地电平 D 只需一个接地即可 4 、逻辑函数 F= + B 的最小项标准式为 [ ] 。 A F= B F= C F= D F= 5 、与 AB + AC +相等的表达式为 [ ] 。 A C B C + C D A + 6 、函数 F=(A + C)(B +) 的反函数是 [ ] 。 A G=( + B) ·+· B G=A + C + B · C G=(A +) · C + B · D G=(A ) ·+ (B+ ) 7 、逻辑函数的逻辑相邻项是 [ ] 。 A A C B A C B D D ABC

8 、已知输入 A 、 B 和输出 F 的波形如图所示, 其 F 与 AB 的逻辑关系为 [ ] 。 A 与非 B 或非 C 异或 D 同或 9 、下列逻辑部件属于时序电路的是 [ ] 。 A 译码器 B 触发器 C 全加器 D 移位寄存器 10 、数据选择器的功能是 [ ] 。 A 将一路输入送至多路输出 B 将输入二进制代码转换为特定信息输出 C 从多路输入选择一路输出 D 考虑低位进位的加法 11 、逻辑函数用卡诺图化简时,八个逻辑相邻项合并可消去 [ ] 。 A 一个变量 B 二个变量 C 三个变量 D 四个变量 12 、 JK 触发器从 0 1, 则激励端 J 、 K 的取值为 [ ] 。 A JK=1X B JK=X0 C JK=X1 D JK=0X 13 、移位寄存器的现态为 0110 ,经过左移一位后,其次态为 [ ] 。 A 0110 或 1011 B 1011 或 1010 C 0110 或 1110 D 1101 或 1100 14 、 4 级触发器组成计数器,组成 13 进制计数器,其无效的状态数为 [ ] 。 A 3 个 B 4 个 C 13 个 D 16 个 15 、 N 级触发器组成环形计数器,其进位模为 [ ] 。 A N B 2N C D 二、填空题(每题 2 分,共 10 分) 1. 格雷码的特征是 ________________ 。 2. F= =________________ 。

西安电子科技大学试卷资料

西安电子科技大学试卷 考试时间120 分钟试卷编号参考答案 班级学号姓名任课老师姓名 请按下述要求正确答题: 1. 在试卷指定位置上正确写入你的班级、学号、姓名和任课老师姓名。 2.全部试卷共 11 页。试卷必须交回,否则以零分计。 3.试题解答必须写在试卷上,若试卷上写不下可以写在试卷的背面,写在草稿纸上的解答一律无效。 4.本试卷的试题共有五道大题,需要全部解答。 5.解答前务必阅读清楚题意,及解答要求,否则导致不能正确评分概由自己负责。 一、单项选择题(每小题1分,共10分) 1.访管指令所引起的中断属于( C )中断。 A.外中断B.I/O中断C.软中断D.程序中断2.资源静态分配法破坏了死锁产生的(B)条件来预防死锁的发生。 A.互斥控制B.保持和等待 C.不可剥夺控制D.循环等待 3.虚拟存储的基础是程序局部性理论,它的基本含义是( B )。 A.代码的顺序执行B.程序执行时对内存访问的不均匀性 C.变量的连续访问D.指令的局部性 4.关于SPOOLING系统(D)的描述是错误的。 A.不需要独占设备 B.加快了作业执行的速度 C.使独占设备变成了共享设备

D.利用了处理器与通道并行工作的能力 5.设系统中有m个同类资源数,n为系统中的并发进程数,当n个进程共享m个互斥资源时,每个进程的最大需求数是w,试问下列情况下系统会死锁的是(D)。 A.m=4,n=3,w=2 B.m=2,n=2,w=1 C.m=5,n=2,w=3 D.m=4,n=3,w=3 6.文件系统中实现按名存取的功能是通过查找(B)来实现的。 A.磁盘空间B.文件目录C.磁盘控制器D.位示图7.下面的叙述中,(D)不是设备管理中引入缓冲机制的主要原因。 A.缓和CPU和I/O设备间的速度不匹配问题 B.减少对CPU的中断频率和放宽对CPU响应时间的限制 C.提高CPU和I/O设备间的并行性 D.节省系统内存 8.下列操作系统强调交互性的系统是(B)。 A.批处理系统B.分时系统C.实时系统D.网络操作系统 9.响应比高者优先作业调度算法是通过计算时间和(D)来实现的。 A.输入时间B.完成时间C.周转时间D.等待时间10.在可变分区管理方案中,若采用“最佳适应”分配算法,通常将空闲区按(A )排列。 A.容量递增B.容量递减C.地址递增D.地址递减二、填空题(每空格1分,共15分) 1.把作业装入内存时完成地址变换的方式称静态地址再定位,而在作业执行期间(访问到指令或数据)才进行地址变换的方式称为动态地址再定位。 2.死锁产生的四个必要条件是互斥执行、保持和等待、不可剥夺和循环等待。

算法分析大作业动态规划方法解乘法表问题和汽车加油行驶问题#精选.

算法分析大作业 动态规划方法解 乘法表问题和汽车加油行驶问题目录 1.动态规划解乘法表问题 1.1问题描述------ 1.2算法设计思想------ 1.3设计方法------ 1.4源代码------ 1.5最终结果------ 2.动态规划解汽车加油行驶问题 2.1问题描述------ 2.2算法设计思想------ 2.3设计方法------ 2.4源代码------ 2.5最终结果------ 3.总结

1.动态规划解决乘法表问题 1.1问题描述 定义于字母表∑{a,b,c)上的乘法表如表所示: 依此乘法表,对任一定义于∑上的字符串,适当加括号表达式后得到一个表达式。 例如,对于字符串x=bbbba,它的一个加括号表达式为(b(bb))(ba)。依乘法表,该表达式的值为a。 试设计一个动态规划算法,对任一定义于∑上的字符串x=x1x2…xn,计算有多少种不同的加括号方式,使由x导出的加括号表达式的值为a。 1.2算法设计思想 设常量a,b,c 分别为 1, 2 ,3 。n 为字符串的长度。 设字符串的第 i 到第 j 位乘积为 a 的加括号法有result[i][j][a] 种, 字符串的第 i 到第 j 位乘积为 b 的加括号法有result[i][j][b] 种, 字符串的第 i 到第 j 位乘积为 c 的加括号法有 result[i][j][c] 种。 则原问题的解是:result[i][n][a] 。 设 k 为 i 到 j 中的某一个字符,则对于 k 从 i 到 j :result[i][j][a] += result[i][k][a] * result[k + 1][j][c] + result[i][k][b] * result[k + 1][j][c] + result[i][k][c] * result[k + 1][j][a]; result[i][j][b] += result[i][k][a] * result[k + 1][j][a] + result[i][k][a] * result[k + 1][j][b] + result[i][k][b] * result[k + 1][j][b]; result[i][j][c] += result[i][k][b] * result[k + 1][j][a] + result[i][k][c] * result[k + 1][j][b] + result[i][k][c] * result[k + 1][j][c];

西安电子科技大学卓越工程师教育培养计划校内课程大纲

西安电子科技大学卓越工程师教育培养计划校内课程大纲 《工程优化方法》 课程名称:工程优化方法/Engineering Optimization Methods 课程代码:0721005 课程类型:必修 总学时数:46学时 学分:3分 开课单位:理学院数学科学系 适用专业:适用于理、工等专业的卓越工程师硕士 课程的性质与目标 最优化方法是一门新兴的应用数学,是运筹学的核心部分,在工程科技、经济金融、管理决策和国防军事等众多领域具有广泛的应用。工程优化方法基于最优化的原理,着重介绍实用性、有效性强的各种实用优化算法。通过本课程的课堂学习和一定的上机实践使学生对工程优化方法的基本原理、算法的基本步骤、应用要点等有一个基本认识和初步掌握,培养和提高用优化方法解决某些实际问题的初步技能,为应用优化软件包解决实际工程问题奠定基础。 ?能够掌握最优化的基本原理、基本方法和应用技能 ?能够用工程优化方法解决简单的实际问题 ?能够熟练应用优化软件包进行计算 学时安排 课堂教学:学时:40 研讨课:学时:6 实践课:学时:10 总学时数:学时:46+10 教学方法 以课堂教学为主,采用板书与多媒体相结合的教学方式,讲授工程优化方法课程的基本原理和方法,既保证讲授内容的清晰,又兼顾师生的交流与互动。在对具体原理和基本方法的推导和证明时,采用板书讲解方式,以便学生能一步步跟上教师的思路。通过课后作业和上机实验加深学生对工程优化方法的理解,培养学生的应用能力,通过动手实践让学生理解从书本理论到分析问题、解决实际问题的过程,从而培养学生解决实际问题的能力。

先修课程 高等数学、线性代数、C语言程序设计、Matlab语言 课程综合记分方法 各部分的比重分别为: 平时成绩 20 % 实验成绩 30 % 期末考试 50 % 总计 100% 教科书 陈宝林. 最优化理论与算法.北京:清华大学出版社,2005. 推荐参考书 1.唐焕文,秦学志编著. 实用最优化方法(第三版).大连:大连理工大学出版社,2004. 2.袁亚湘,孙文瑜. 最优化理论与方法. 北京:科技出版社,2001. 3.J. Nocedal & S. J. Wright, Numerical Optimization(影印版),北京:科学出版社,2006. * *本表注:对于表中第二列所列技能应对照附录A 理解。目标栏内以A, B, C, D 来表示对此条能力要求达到的程度,A 为最高要求,无要求则留空。接触指在教、学活动中有所提及但没有训练和测试要求;训练指有明确要求并有测试项目;应用指在教、学中有所应用而不论是否曾给与相关训练或考核。

对并行算法的介绍和展望——学期大作业

《计算机系统结构》大作业 对并行算法的介绍和展望 专业计算机科学与技术 班级 111 学号 111425020133 姓名完颜杨威 日期 2014年4月17日 河南科技大学国际教育学院

对并行算法的介绍和展望 我们知道,算法是求解问题的方法和步骤。而并行算法就是用多台处理机联合求解问题的方法和步骤,其执行过程是将给定的问题首先分解成若干个尽量相互独立的子问题,然后使用多台计算机同时求解它,从而最终求得原问题的解。并行算法的研究涉及到理论、设计、实现、应用等多个方面,要保持并行算法研究的持续性和完整性,需要建立一套完整的“理论-设计-实现-应用”的学科体系,也就是所谓的并行算法研究的生态环境。其中,并行算法理论是并行算法研究的理论基础,包含并行计算模型和并行计算复杂性等;并行算法的设计与分析是并行算法研究的核心内容;并行算法的实现是并行算法研究的应用基础,包含并行算法实现的硬件平台和软件支撑技术等;并行应用是并行算法研究的发展动力,除了包含传统的科学工程计算应用外,还有新兴的与社会相关的社会服务型计算应用等。 并行算法主要分为数值计算问题的并行算法和非数值计算问题的并行算法。而并行算法的研究主要分为并行计算理论、并行算法的设计与分析、和并行算法的实现三个层次。现在,并行算法之所以受到极大的重视,是为了提高计算速度、提高计算精度,以及满足实时计算需要等。然而,相对于串行计算,并行计算又可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。并行算法是一门还没有发展成熟的学科,虽然人们已经总结出了相当多的经验,但是远远不及串行算法那样丰富。并行算法设计中最常用的的方法是PCAM方法,即划分,通信,组合,映射。首先划分,就是将一个问题平均划分成若干份,并让各个处理器去同时执行;通信阶段,就是要分析执行过程中所要交换的数据和任务的协调情况,而组合则是要求将较小的问题组合到一起以提高性能和减少任务开销,映射则是要将任务分配到每一个处理器上。任何一个并行算法必须在一个科学的计算模型中进行设计。我们知道,任何算法必须有计算模型。任何并行计算模型必须要有为数不多、有明确定义的、可以定量计算的或者可以实际测量的参数,这些参数可以构成相应函数。并行计算模型是算法设计者与体系结构研究者之间的一个桥梁,是并行算法设计和分析的基础。它屏蔽了并行机之间的差异,从并行机中抽取若干个能反映计算特性的可计算或可测量的参数,并按照模型所定义的计算行为构造成本函数,以此进行算法的复杂度分析。 经过多年的发展,我国在并行算法的研究上也取得了显著进展,并行计算的应用已遍布天气预报、石油勘探、航空航天、核能利用、生物工程等领域,理论研究与应用普及均取得了很大发展。随着高性价比可扩展集群并行系统的逐步成熟和应用,大规模电力系统潮流并行计算和分布式仿真成为可能。目前,并行算法在地震数据处理中应用已较为成熟,近年来向更实用的基于PC机群的并行技术发展.然而,在非地震方法中,并行算法应用较少见文献报道,研究尚处于初级研究阶段。在大地电磁的二维和三维正、反演问题上,并行计算技术逐渐得到越来越多关注和重视.随着资源和能源需求的增长,地球物理勘探向深度和广度快速发展,大幅增长的数据量使得高性能并行计算机和高效的并行算法在勘探地球物理学中的发展和应用将占据愈来愈重要的地位。计算机技术在生物医学领域已经广泛应用,实践证明,并行算法在生物医学工程的各个领域中具有广泛的应用价值,能有效提高作业效率。随着电子科学技术的发展,电磁问题变得越来越复杂,为了在有限的计算机资源条件下求解大规模复杂电磁问题,许电磁学家已

西安电子科技大学网络教育

西安电子科技大学网络教育 2010学年上学期期末考试模拟题2 课程名称: _机械工程材料_ 考试形式:闭卷 学习中心:_________ 考试时间: 90分钟 姓名:_____________ 学号: 一、填充题(共30分,每空一分) 1.弹性模量E值表征材料____________。弹性模量的大小主要取决 于材料的______。它除随温度升高而逐渐降低外,其他强化材料的手段 如热处理、冷热加工、合金化等对弹性模量的影响_____。 2. 常将铸铁分为如下五大类:_____,_____,_____,____ _,_____。 3.高聚物性能的一个主要缺点是_____。 4. 复合材料的增强体材料常用_____、_____以及它们的粒子和片状物; 而常用的基体材料有_____、_____、_____、_____等。 5. 材料的工艺性能是指材料加工成零件的__________。 6. 从形态来看纳米材料可分为_____、_____、_____三种。 7.珠光体是_____和_____组成的两相机械混合物,常用符号____ 表示。 8.常见的冷加工工艺有:____、____、____、____。 常见的热加工工艺有:____、____、____、____。 二、问答题(共70分) 1. (8分)简述枝晶偏析现象,如何消除枝晶偏析。 2. (5分)合金的相结构有哪几种? 3. (5分)冷塑性变形对金属性能的影响表现在哪些方面? 4. (5分)金属的冷热塑性加工的区别是什么?Fe 的冷热塑性加工的区别点是多 高? 5. (8分)说明钢热处理时影响奥氏体形成的因素有哪些? 6. (5分)退火的目的有哪些? 7. (8分)解释淬火并说明其目的。 8. (8分)解释冷处理并说明其目的。 9. (4分)根据钢与可控气氛间发生的化学反应情况可控气氛热处理的可控气氛有 哪几种?

(完整word版)西安电子科技大学信息论与编码理论讲义

《信息论》 讲义 204教研室 2005年11月

主要内容: 第一章绪论 第二章离散信源及其信息测度第三章离散信道及其信道容量第四章无失真信源编码 第五章有噪信道编码

第一章 绪论 信息论——人们在长期通信工程的实践中,由通信技术与概率论、随机过程和数理统计相结合而逐步发展起来的一门学科。 奠基人——香农 1948年发表了著名的论文——《通信的数学理论》,为信息论奠定了理论基础。 1.1 信息的概念 人类离不开信息,信息的接收、传递、处理和利用时时刻刻都在发生。 如:“结绳记事”、“烽火告警”,信息的重要性是不言而喻的。 什么是信息?——信息论中最基本、最重要的概念。 信息与“消息”、“情报”、“知识”、“情况”等的区别: “情报”——人们对于某个特定对象所见、所闻、所理解而产生的知识。是一类特定的信息。 “知识”——人们根据某种目的,从自然界收集得来的数据中,整理、概括、提取得到的有价值的、人们所需的信息。是一种具有普遍和概括性质的高层次的信息。 “消息”——以文字、符号、数据、语言、音符、图片、图像等能够被人们感觉器官所感知的形式,表达客观物质运动和主观思维活动的状态。 消息包含信息,是信息的载体。二者既有区别又有联系。 “信号”——消息的运载工具。 香农从研究通信系统传输的实质出发,对信息作了科学的定义,并进行了定性和定量的描述。 收信者: 收到消息前,发送者发送的消息——1、描述的是何种事物运动状态的具体消息;2、描述的是这种消息还是那种消息;3、若存在干扰,所得消息是否正确与可靠。 存在“不知”、“不确定”或“疑问” 收到消息后,知道消息的具体内容,原先的“不知”、“不确定”或“疑问”消除或部分消除了。 消息传递过程——从不知到知的过程;从知之甚少到知之甚多的过程;从不确定到部分确定或全部确定的过程。 通信过程——消除不确定性的过程。 不确定性的消除,就获得了信息。 若原先不确定性全部消除了,就获得了全部的消息;若消除了部分不确定性,就获得了部分信息;若原先不确定性没有任何消除,就没有获得任何消息。 信息——事物运动状态或存在方式的不确定性的描述。 通信的结果——消除或部分消除不确定性而获得信息。 信息如何测度? 信息量与不确定性消除的程度有关。消除了多少不确定性,就获得了多少信息量。 不确定性——随机性——概率论与随机过程。 样本空间——所有可能选择的消息的集合。 概率空间——样本空间和它的概率测度。],[P X

0-1背包问题的算法设计策略对比与讲解

算法设计与分析大作业 班级:电子154 姓名:吴志勇 学号: 1049731503279 任课老师:李瑞芳 日期: 2015.12.25

算法设计与分析课程论文 0-1背包问题的算法设计策略对比与分析 0 引言 对于计算机科学来说,算法的概念是至关重要的。在一个大型软件系统的开发中,设计出有效的算法将起到决定性的作用。通俗的讲,算法是解决问题的一种方法。也因此,《算法分析与设计》成为计算科学的核心问题之一,也是计算机科学与技术专业本科及研究生的一门重要的专业基础课。算法分析与设计是计算机软件开发人员必修课,软件的效率和稳定性取决于软件中所采用的算法;对于一般程序员和计算机专业学生,学习算法设计与分析课程,可以开阔编程思路,编写出优质程序。通过老师的解析,培养我们怎样分析算法的“好”于“坏”,怎样设计算法,并以广泛用于计算机科学中的算法为例,对种类不同难度的算法设计进行系统的介绍与比较。本课程将培养学生严格的设计与分析算法的思维方式,改变随意拼凑算法的习惯。本课程要求具备离散数学、程序设计语言、数据结构等先行课课程的知识。 1 算法复杂性分析的方法介绍 算法复杂性的高低体现在运行该算法所需要的计算机资源的多少上,所需的资源越多,该算法的复杂性越高;反之,所需资源越少,该算法的复杂性越低。对计算机资源,最重要的是时间与空间(即存储器)资源。因此,算法的复杂性有时间复杂性T(n)与空间复杂性S(n)之分。 算法复杂性是算法运行所需要的计算机资源的量,这个量应集中反映算法的效率,并从运行该算法的实际计算机中抽象出来,换句话说,这个量应该只依赖要解决的问题规模‘算法的输入和算法本身的函数。用C表示复杂性,N,I和A表示问题的规模、算法的输入和算法本身规模,则有如下表达式: C=F(N,I,A) T=F(N,I,A) S=F(N,I,A) 其中F(N,I,A)是一个三元函数。通常A隐含在复杂性函数名当中,因此表达式中一般不写A。 即:C=F(N,I) T=F(N,I) S=F(N,I) 算法复杂性中时间与空间复杂性算法相似,所以以下算法复杂性主要以时间复杂性为例: 算法的时间复杂性一般分为三种情况:最坏情况、最好情况和平均情况。下面描述算法复杂性时都是用的简化的复杂性算法分析,引入了渐近意义的记号O,Ω,θ,和o。 O表示渐近上界Ω表示渐近下界: θ表示同阶即:f(n)= O(g(n))且 f(n)= Ω(g(n)) 2 常见的算法分析设计策略介绍 2.1 递归与分治策略 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。 直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。 由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。这自然导致递归过程的产生。 分治与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。 递归算法举例: 共11页第1页

相关文档
最新文档