北航研究生算法(208精心整理)
北京航空航天大学研究生课程考核与成绩管理办法
北京航空航天大学研究生课程考核与成绩管理办法校研函字〔2020〕19 号第一章总则第一条为进一步规范研究生课程考核与成绩管理,维护课程考核的科学性与成绩的准确性、严肃性,根据《普通高等学校学生管理办法》(教育部令第 41 号)和《北京航空航天大学研究生学籍管理规定》(北航研字〔2019〕14 号)有关规定,制定本办法。
第二条本办法适用于北京航空航天大学各类研究生课程以及各类培养环节。
第二章研究生课程考核方式第三条研究生课程考核分为考试和考查两类。
考核方式包括笔试、口试、课程论文和技能操作等。
基础及学科理论核心课程一般采用笔试考试方式。
第四条研究生课程考核应强调过程考核与结果考核相结合。
过程考核通常由作业、课堂讨论、文献选读报告、实验报告、课程论文与课程学术报告、出勤等组成,在课程考核成绩中所占比例应不少于 30%;任课教师应依据课程教学大纲明确课程考核方式和成绩构成,并在上课第一节课向学生公布。
第五条研究生课程,如有平行班,应当统一考核形式和标准,由不同任课教师共同命题,共同编制考卷,共同评阅试卷。
第六条研究生课程考试一般安排在课程教学结束后进行。
公共基础课程考试安排由研究生院公布,其他课程考试安排由开课学院确定,但须提前将考试安排报研究生院备案。
第三章研究生课程成绩记载第七条研究生在学期间所有选课及课程考核成绩逐一如实记载,并打印在成绩单上。
第八条免修免考课程,其成绩记录为“EX”。
第九条学分认定课程,其成绩记录为“T”。
第十条研究生一经选课,应按要求参加规定的教学活动。
凡未经免修批准,一门课程缺课课时累计达 1/3 者,或缺课程作业(含做实验)超过 1/3 者,取消课程考试资格,该课程成绩记为“F”。
第十一条学生只能获得已选课程的成绩及学分。
选课后在规定时间内未办理退选手续或未办理缓考手续而不参加课程考核,该课程成绩记为“F”。
第十二条学生重修后获得课程成绩,其成绩单应给予“R”标记。
第十三条研究生因转学或转专业,或研究生因退学等情况中止学业,研究生重新参加入学考试、符合录取条件,再次入学的,其在校学习期间所修课程成绩及已获得的学分,有效期为两年,可予以学分认定。
北航研究生数值分析作业第一题
北航研究⽣数值分析作业第⼀题北航研究⽣数值分析作业第⼀题:⼀、算法设计⽅案1.要求计算矩阵的最⼤最⼩特征值,通过幂法求得模最⼤的特征值,进⾏⼀定判断即得所求结果;2.求解与给定数值接近的特征值,可以该数做漂移量,新数组特征值倒数的绝对值满⾜反幂法的要求,故通过反幂法即可求得;3.反幂法计算时需要⽅程求解中间过渡向量,需设计Doolite分解求解;4.|A|=|B||C|,故要求解矩阵的秩,只需将Doolite分解后的U矩阵的对⾓线相乘即为矩阵的Det。
算法编译环境:vlsual c++6.0需要编译函数:幂法,反幂法,Doolite分解及⽅程的求解⼆、源程序如下:#include#include#include#includeint Max(int value1,int value2);int Min(int value1,int value2);void Transform(double A[5][501]);double mifa(double A[5][501]);void daizhuangdoolite(double A[5][501],double x[501],double b[501]); double fanmifa(double A[5][501]); double Det(double A[5][501]);/***定义2个判断⼤⼩的函数,便于以后调⽤***/int Max(int value1,int value2){return((value1>value2)?value1:value2);}int Min(int value1,int value2){return ((value1}/*****************************************//***将矩阵值转存在⼀个数组⾥,节省空间***/void Transform(double A[5][501],double b,double c){int i=0,j=0;A[i][j]=0,A[i][j+1]=0;for(j=2;j<=500;j++)A[i][j]=c;i++;j=0;A[i][j]=0;for(j=1;j<=500;j++)A[i][j]=b;i++;for(j=0;j<=500;j++)A[i][j]=(1.64-0.024*(j+1))*sin(0.2*(j+1))-0.64*exp(0.1/(j+1)); i++;for(j=0;j<=499;j++)A[i][j]=b;A[i][j]=0;i++;for(j=0;j<=498;j++)A[i][j]=c;A[i][j]=0,A[i][j+1]=0;}/***转存结束***///⽤于求解模最⼤的特征值,幂法double mifa(double A[5][501]){int s=2,r=2,m=0,i,j;double b2,b1=0,sum,u[501],y[501];for (i=0;i<=500;i++){u[i] = 1.0;}do{sum=0;if(m!=0)b1=b2;m++;for(i=0;i<=500;i++)sum+=u[i]*u[i];for(i=0;i<=500;i++)y[i]=u[i]/sqrt(sum);for(i=0;i<=500;i++){u[i]=0;for(j=Max(i-r,0);j<=Min(i+s,500);j++)u[i]=u[i]+A[i-j+s][j]*y[j];}b2=0;for(i=0;i<=500;i++)b2=b2+y[i]*u[i];}while(fabs(b2-b1)/fabs(b2)>=exp(-12));return b2;}//带状DOOLITE分解,并且求解出⽅程组的解void daizhuangdoolite(double A[5][501],double x[501],double b[501]) { int i,j,k,t,s=2,r=2;double B[5][501],c[501];for(i=0;i<=4;i++){for(j=0;j<=500;j++)B[i][j]=A[i][j];}for(i=0;i<=500;i++)c[i]=b[i];for(k=0;k<=500;k++){for(j=k;j<=Min(k+s,500);j++){for(t=Max(0,Max(k-r,j-s));t<=k-1;t++)B[k-j+s][j]=B[k-j+s][j]-B[k-t+s][t]*B[t-j+s][j]; }for(i=k+1;i<=Min(k+r,500);i++){for(t=Max(0,Max(i-r,k-s));t<=k-1;t++)B[i-k+s][k]=B[i-k+s][k]-B[i-t+s][t]*B[t-k+s][k]; B[i-k+s][k]=B[i-k+s][k]/B[s][k];}}for(i=1;i<=500;i++)for(t=Max(0,i-r);t<=i-1;t++)c[i]=c[i]-B[i-t+s][t]*c[t];x[500]=c[500]/B[s][500];for(i=499;i>=0;i--){x[i]=c[i];for(t=i+1;t<=Min(i+s,500);t++)x[i]=x[i]-B[i-t+s][t]*x[t];x[i]=x[i]/B[s][i];}}//⽤于求解模最⼤的特征值,反幂法double fanmifa(double A[5][501]){int s=2,r=2,m=0,i;double b2,b1=0,sum=0,u[501],y[501];for (i=0;i<=500;i++){u[i] = 1.0;}do{if(m!=0)b1=b2;m++;sum=0;for(i=0;i<=500;i++)sum+=u[i]*u[i];for(i=0;i<=500;i++)y[i]=u[i]/sqrt(sum);daizhuangdoolite(A,u,y);b2=0;for(i=0;i<=500;i++)b2+=y[i]*u[i];}while(fabs(b2-b1)>=fabs(b1)*exp(-12));return 1/b2;}//⾏列式的LU分解,U的主线乘积即位矩阵的DET double Det(double A[5][501]) {int i,j,k,t,s=2,r=2;for(k=0;k<=500;k++){for(j=k;j<=Min(k+s,500);j++){for(t=Max(0,Max(k-r,j-s));t<=k-1;t++)A[k-j+s][j]=A[k-j+s][j]-A[k-t+s][t]*A[t-j+s][j];}for(i=k+1;i<=Min(k+r,500);i++){for(t=Max(0,Max(i-r,k-s));t<=k-1;t++)A[i-k+s][k]=A[i-k+s][k]-A[i-t+s][t]*A[t-k+s][k];A[i-k+s][k]=A[i-k+s][k]/A[s][k];}}double det=1;for(i=0;i<=500;i++)det*=A[s][i];return det;}void main(){double b=0.16,c=-0.064,p,q;int i,j;double A[5][501];Transform(A,b,c); //进⾏A的赋值cout.precision(12); //定义输出精度double lamda1,lamda501,lamdas;double k=mifa(A);if(k>0) //判断求得最⼤以及最⼩的特征值.如果K>0,则它为最⼤特征值值,//并以它为偏移量再⽤⼀次幂法求得新矩阵最⼤特征值,即为最⼤ //与最⼩的特征值的差{lamda501=k;for(i=0;i<=500;i++)A[2][i]=A[2][i]-k;lamda1=mifa(A)+lamda501;for(i=0;i<=500;i++)A[2][i]=A[2][i]+k;}else //如果K<=0,则它为最⼩特征值值,并以它为偏移量再⽤⼀次幂法//求得新矩阵最⼤特征值,即为最⼤与最⼩的特征值的差{lamda1=k;for(i=0;i<=500;i++)A[2][i]=A[2][i]-k;lamda501=mifa(A)+lamda1;for(i=0;i<=500;i++)A[2][i]=A[2][i]+k;}lamdas=fanmifa(A);FILE *fp=fopen("result.txt","w");fprintf(fp,"λ1=%.12e\n",lamda1);fprintf(fp,"λ501=%.12e\n",lamda501);fprintf(fp,"λs=%.12e\n\n",lamdas);fprintf(fp,"\t要求接近的值\t\t\t实际求得的特征值\n");for(i=1;i<=39;i++) //反幂法求得与给定值接近的特征值{p=lamda1+(i+1)*(lamda501-lamda1)/40;for(j=0;j<=500;j++)A[2][j]=A[2][j]-p;q=fanmifa(A)+p;for(j=0;j<=500;j++)A[2][j]=A[2][j]+p;fprintf(fp,"µ%d: %.12e λi%d: %.12e\n",i,p,i,q);}double cond=fabs(mifa(A)/fanmifa(A));double det=Det(A);fprintf(fp,"\ncond(A)=%.12e\n",cond);fprintf(fp,"\ndetA=%.12e\n",det);}三、程序运⾏结果λ1=-1.069936345952e+001λ501=9.722283648681e+000λs=-5.557989086521e-003要求接近的值实际求得的特征值µ1: -9.678281104107e+000 λi1: -9.585702058251e+000µ2: -9.167739926402e+000 λi2: -9.172672423948e+000µ3: -8.657198748697e+000 λi3: -8.652284007885e+000µ4: -8.146657570993e+000 λi4: -8.0934********e+000µ5: -7.636116393288e+000 λi5: -7.659405420574e+000µ6: -7.125575215583e+000 λi6: -7.119684646576e+000µ7: -6.615034037878e+000 λi7: -6.611764337314e+000µ8: -6.104492860173e+000 λi8: -6.0661********e+000µ9: -5.593951682468e+000 λi9: -5.585101045269e+000µ10: -5.0834********e+000 λi10: -5.114083539196e+000µ11: -4.572869327058e+000 λi11: -4.578872177367e+000µ12: -4.062328149353e+000 λi12: -4.096473385708e+000µ13: -3.551786971648e+000 λi13: -3.554211216942e+000µ14: -3.0412********e+000 λi14: -3.0410********e+000µ15: -2.530704616238e+000 λi15: -2.533970334136e+000µ16: -2.020*********e+000 λi16: -2.003230401311e+000µ17: -1.509622260828e+000 λi17: -1.503557606947e+000µ18: -9.990810831232e-001 λi18: -9.935585987809e-001µ19: -4.885399054182e-001 λi19: -4.870426734583e-001µ20: 2.200127228676e-002 λi20: 2.231736249587e-002µ21: 5.325424499917e-001 λi21: 5.324174742068e-001µ22: 1.043083627697e+000 λi22: 1.052898964020e+000µ23: 1.553624805402e+000 λi23: 1.589445977158e+000µ24: 2.064165983107e+000 λi24: 2.060330427561e+000µ25: 2.574707160812e+000 λi25: 2.558075576223e+000µ26: 3.0852********e+000 λi26: 3.080240508465e+000µ27: 3.595789516221e+000 λi27: 3.613620874136e+000µ28: 4.106330693926e+000 λi28: 4.0913********e+000µ29: 4.616871871631e+000 λi29: 4.603035354280e+000µ30: 5.127413049336e+000 λi30: 5.132924284378e+000µ31: 5.637954227041e+000 λi31: 5.594906275501e+000µ32: 6.148495404746e+000 λi32: 6.080933498348e+000µ33: 6.659036582451e+000 λi33: 6.680354121496e+000µ34: 7.169577760156e+000 λi34: 7.293878467852e+000µ35: 7.680118937861e+000 λi35: 7.717111851857e+000µ36: 8.190660115566e+000 λi36: 8.225220016407e+000µ37: 8.701201293271e+000 λi37: 8.648665837870e+000µ38: 9.211742470976e+000 λi38: 9.254200347303e+000µ39: 9.722283648681e+000 λi39: 9.724634099672e+000cond(A)=1.925042185755e+003detA=2.772786141752e+118四、分析如果初始向量选择不当,将导致迭代中X1的系数等于零.但是,由于舍⼊误差的影响,经若⼲步迭代后,.按照基向量展开时,x1的系数可能不等于零。
北航计算机研究生课程算法设计及解析总结
一、解:第 k 月的需求量 Nk(k=1,2,3,4)状量 Xk:第 k 月初的存量, X1=X5=0,0≤Xk≤ Nk+⋯+N4决策量 Uk:第 k 月的生量, max{0, Nk-Xk} ≤ Uk≤min{6 ,Nk+⋯+N4 - Xk}状移方程: X = Uk + Xk – Nkk+1第 k 月的成本 Vk = *(Xk - Nk) Uk=03 + Uk + *(Uk + Xk - Nk) Uk ≠ 0F k(Xk) 是由第 k 月初的存量 Xk 开始到第 4 月份束段的最成本F k(Xk) = min{Vk + F k+1(X k+1 )}1≤k≤4= min{ 3 + Uk + *(Uk + Xk - Nk) + F k+1(Uk + Xk - Nk) }Uk≠0min{ *(Xk - Nk) + F k+1(Xk - Nk) }Uk=0F5(X5)=0四个月内的最成本F1 (X1)=F 1(0)算步以下:(1) k=40≤X4≤4,max{0,4 - X4}≤U4≤min{6,4-X4}X4 U4 X5 V4 F5(X5) V4 + F5(X5)0 4 0 7 0 7=F4(0)1 3 0 6 0 6=F4(1)2 2 0 5 0 5=F (2)43 1 04 0 4=F4(3)4 0 0 0 0 0=F4(4)即于状 X4 的每个取,都有唯一确定的决策量U4 使得 F4(X4) 最(2) k=30≤X3≤6,max{0,2 - X3} ≤U3≤min{6 , 6-X3}X3 U3 X4 V3 F4(X4) V3 + F4(X4) 0 2 0 5 7 123 1 64 2 85 135 3 46 4 11 0 11=F3(0)1 1 0 4 7 112 1 63 2 7 5 124 3 42 5 4 10 0 10=F3(1) 0 0 0 7 7=F (2)31 1 62 2 6 5 113 3 43 4 4 9 0 90 1 6 =F (3)31 2 5 5 102 3 44 3 4 8 0 80 2 1 5 6=F (4)31 3 42 4 7 0 75 0 3 4 =F3 (5)1 4 6 0 66 0 4 3 0 2=F3(6)(3) k=2 时0≤X2≤9,max{0,3 - X2}≤U2≤min{6,9-X2}X2 U2 X3 V2 F3(X3) V2 + F 3(X3) 0 3 0 6 11 174 1 105 2 9 7 16=F (0)26 3 171 2 0 5 11 163 1 104 2 8 7 15=F2(1)5 3 166 4 11 6 172 1 0 4 11 152 1 103 2 7 7 14=F (2)24 3 155 4 106 166 5 173 0 0 0 11 11=F (3)21 1 102 2 6 7 133 3 144 4 9 6 155 5 166 6 12 2 144 0 1 10 =F (4)21 2 5 7 132 3 133 4 8 6 144 5 155 6 11 2 135 0 2 1 7 8=F (5)21 3 122 4 7 6 133 5 144 6 10 2 126 0 3 8=F (6)21 4 6 6 122 5 133 6 9 2 117 0 4 2 6 8=F (7)21 5 122 6 8 2 108 0 5 8=F2(8)9 1 6 7 2 90 6 3 2 5=F (9)2(4) k=1X1=0,max{0,2} ≤U1≤min{6 , 11}X1 U1 X2 V1 F2(X2) V1 + F2(X2) 0 2 0 5 16 213 1 154 2 8 14 225 3 11 =F1 (0)6 4 11由以上算可得, 4 个月的最成本 F (0) = ( 千元 )1从 k=1 回溯,可得最果中各段的状量Xk 和决策量 Uk 以下表:月份 k 量 Uk 月初存量 Xk 需求量 Nk 每个月成本Vk1 5 0 22 03 3 03 6 0 2 114 0 4 4 0二、解:1、变量设定段 k:已遍 k 个点, k=1,2 ⋯ 6,7 。
北航GPA算法
1、GPA算法网上流传着各种各样的算法,但是需要强调的是,美国人知道中国的大部分学校不用GPA,因此相当多的学校在网申系统里明确指出,不允许将自己的成绩换算成美国的GPA,比如Caltech,Princeton,Stanford等,这一栏留着不填即可。
有的学校则要求按照我们的评定成绩规则填写,北航是用百分制的平均分,那么我们可以填写在保研是用的大学前三年的必修课平均成绩,到时候教务会算好。
还有很多的学校没做要求,就按照北航的GPA算法计算。
其实自己填写的GPA只是一个参考,可以写在简历里辅助申请,对方学校会按照他们的标准重新计算。
可能具体的教授还会拿出你的某些重要的课程评估你的GPA,因此其实研究哪种算法算的更高没有意义,之所以这么说还有一点原因就是北航的学生在算GPA时必须严格按照自己学校的GPA算法计算。
2、北航的GPA算法在开成绩单时,学校不给算GPA,但是在成绩单上有GPA的算法,那么在计算GPA是就应该按照这个算法来计算,不可以采用其他的算法。
当然也没规定一定严格按照这个算法,但是既然写在了官方的成绩单上,就应该这么算,要不然会有作弊之嫌。
2.1、具体算法如下:85~100/A:4;70~84/B:3;60~69/C:2;不及格/F:0;按照通过与不通过评分的,算法如下:通过/P: 3.3;不通过/F:0;例如,有三门课,学分分别为1、2、3,得分分别为86、76和通过,那么这三门课的GPA 就是(4×1+3×2+3.3×3)/(1+2+3)=3.32总体来讲,北航的GPA算法还是很有优势的。
2.2、计算GPA的课程范围:全部课程,包括所有的必修,任何形式的选修,只要是出现在成绩单上的都要算,大学前三年学过的所有课程都会出现在成绩单上。
不要试图去修改成绩,北航也不允许去掉更不允许修改成绩。
有的时候自己可以算一个专业课GPA,放到简历里,自己挑出专业课计算就行,如何定义专业课就看你自己了。
北航gpa计算公式
北航gpa计算公式
北航GPA计算公式
GPA是Grade Point Average的缩写,是一个评估学生学术表现的标准。
在国内,GPA的计算方式有所不同,而北航的GPA计算公式也有所不同。
首先,北航的GPA计算公式是基于学分制的,即学生的GPA评分是根据其所修课程的学分来计算的。
例如,学生修满了60学分的课程,每门课程的学分数不同,那么学生的GPA评分也会不同。
其次,在北航的GPA计算公式中,有六种不同的成绩等级,分别是A,B,C,D,E和F,每个等级都有一个分数,A等级最高,F 等级最低。
具体而言,A等级的分数为4.0,B等级的分数为3.0,C 等级的分数为2.0,D等级的分数为1.0,E等级的分数为0.5,F等级的分数为0.0。
最后,在北航的GPA计算公式中,学生的GPA评分是根据其所修课程的学分和成绩等级计算得出的,具体计算方法是将学生所修课程的学分和成绩等级相乘,再将所有乘积相加,最后再除以总学分,就得出学生的GPA评分。
例如,一名学生修满了60学分的课程,其中有20门A等级的课程,20门B等级的课程,20门C等级的课程,那么他的GPA评分就是(20*4.0+20*3.0+20*2.0)/60=3.0。
从上面可以看出,北航的GPA计算公式是相对简单的,但是也有一定的复杂性,所以学生在学习的过程中要注意,及时掌握自己的学习情况,提高自己的GPA成绩。
北航全日制工程硕士研究生培养方案
北航全日制工程硕士研究生培养方案
北京航空航天大学全日制工程硕士研究生培养方案(2024年本科生
工程硕士)
一、学制要求:
1.研究生须在正常学制内完成国家规定的学位课程学习,本科在读
学生要求修满2年学制,硕士研究生学制为3年(3年内可获取学位)。
2.硕士研究生须按照学校学位课程领域规定,完成学位论文规定的
内容,并经答辩答辩小组认可,方可毕业获得硕士学位。
二、修读学位课程:
1.本科在读学生:需要在正常学制3年内修满32学分,其中,专业
硕士课程21学分,毕业选修课5学分,实践教育部分6学分。
2.硕士研究生:需要在正常学制内完成26学分,其中,专业硕士课
程15学分,毕业选修课7学分,学术英语和实践教育部分4学分。
三、学位论文答辩:
所有的学位论文答辩必须在学校安排的时间内完成,答辩答辩小组由
系主任和相关专家组成,经答辩答辩小组认可,方可毕业获得硕士学位。
四、实践教育:
根据学校实践教育规定,研究生须在学校安排的实践教育时间内完成,实践教育内容包括实验室训练、技术练习、科学研究与实施计划、社会调
查与研究、科研管理等。
五、奖学金:
研究生可根据学校的规定。
北航研究生学分新政
北航研究生学分新政近年来,我国高等教育改革持续推进,各高校纷纷出台新政,旨在提高研究生培养质量。
北京航空航天大学(简称“北航”)作为国内一流学府,也在不断完善研究生教育管理制度。
本文将为您详细介绍北航研究生学分新政的相关内容。
一、北航研究生学分新政背景随着社会发展和科技进步,对高层次人才的需求日益增长。
为适应这一趋势,我国高等教育逐渐从规模扩张转向内涵发展。
北航作为国内知名高校,积极贯彻落实国家教育政策,以培养具有创新能力的高素质研究生为目标,不断优化培养方案和管理制度。
研究生学分新政便是其中之一。
二、北航研究生学分新政主要内容1.学分要求根据北航研究生学分新政,研究生在规定的学习年限内,需修满一定的学分。
学分分为必修课学分、选修课学分和实践环节学分。
不同专业、不同层次的研究生学分要求有所不同,具体要求可参考各学院发布的培养方案。
2.学分认定北航研究生学分认定遵循以下原则:(1)课程成绩合格,方可获得学分;(2)课程学分可相互认定,但认定课程需满足一定条件,如课程性质、学分、学时等;(3)研究生在学期间所获得的学分,有效期为5年。
3.学分转换北航研究生学分转换遵循以下规定:(1)研究生在国内外高校修读的课程,可申请学分转换;(2)学分转换需提交相关材料,经学院审核、学校批准后,方可认定;(3)转换学分不得超过规定学分的三分之一。
4.学分替代北航研究生学分替代遵循以下规定:(1)研究生在学期间,可通过参加科研项目、学术活动等途径,申请学分替代;(2)学分替代需提交申请,经学院审核、学校批准后,方可认定;(3)替代学分不得超过规定学分的十分之一。
三、北航研究生学分新政实施效果北航研究生学分新政的实施,有助于提高研究生的学术素养和实践能力,促进研究生教育的内涵发展。
同时,学分新政也为研究生提供了更多自主选择的空间,使研究生教育更加符合个性化、多样化的需求。
总结:北航研究生学分新政旨在优化研究生培养体系,提高研究生培养质量。
最新北航研究生算法(精心整理)
一:判断题1、一个正确的算法,对于每个合法输入,都会在有限的时间内输出一个满足要求的结果。
(对)2、NP完全问题比其他所有NP问题都要难。
(错)3、回溯法用深度优先法或广度优先法搜索状态空间树。
(错,仅深度优先)4、在动态规划中,各个阶段所确定的策略就构成一个策略序列,通常称为一个决策。
(错)5、P类和NP类问题的关系用P⊂NP来表示是错误的。
(错)6、若近似算法A求解某极小化问题一实例的解为Sa,且已知该问题的最优解为Sa/3,则该近似算法的性能比为3。
(错)7、通常来说,算法的最坏情况的时间复杂行比平均情况的时间复杂性容易计算。
(对)8、若P2多项式时间转化为(polynomial transforms to)P1,则P2至少与P1一样难。
(错)9、快速排序算法的平均时间复杂度是O(nlogn),使用随机化快速排序算法可以将平均时间复杂度降得更低。
(错)10、基于比较的寻找数组A[1,…,n]中最大元素的问题下届是Ω(n/3)。
(错)11、O(f(n))+O(g(n))=O(min{f(n),g(n)})(错)12、若f(n)=Ω(g(n)),g(n)=Ω(h(n)),则f(n)=Ω(h(n))(对)13、若f(n)=O(g(n)),则g(n)=Ω(f(n))(对)14、贪婪技术所做的每一步选择所产生的部分解,不一定是可行性的。
(错)15、LasVegas算法只要给出解就是正确的。
(对)16、一个完全多项式近似方案是一个近似方案{Aε},其中每一个算法Aε在输入实例I的规模的多项式时间内运行。
(错)二:简答1、二叉查找树属于减治策略的三个变种中的哪一个的应用?什么情况下二叉查找树表现出最差的效率?此时的查找和插入算法的复杂性如何?答:减治策略有3个主要的变种,包括减常量、减常数因子和减可变规模。
(1) 二叉查找树属于减可变规模变种的应用。
(2) 当先后插入的关键字有序时,构成的二叉查找树蜕变为单支树,树的深度等于n,此时二叉查找树表现出最差的效率,(3) 查找和插入算法的时间效率都属于Θ(n)。
北航计算机考研经验
北航计算机考研经验我报的是计算机专硕,不分方向。
初试347分,其中政治72,英语67,数学114,专业课94。
2018年专硕复试线290分/学硕310分;我347分排在第60多名(ps:由于非全日制满足校线的才两人,所以专硕划分比较低,同时由于专硕报名人数多,导致后面复试会刷掉很多专硕,以及分数较低的会调剂到非全日制)。
首先谈初试,北航计算机无论学硕还是专硕考试科目都是一样的。
公共课为英语一、数学一、政治;专业课代码是961,包含组成原理,操作系统和计算机网络三门。
数学一:我大概2017年寒假就下定决心考研了,寒假的时候就在家里看高数书,记笔记。
作为过来人,我不推荐学弟学妹刚开始复习时就自己啃高数书,首先是这些知识点是大一学的,很多都记不清了,自己看书理解可能不会很深刻,其次是高数书比较无聊,会出现看不下去的情况,导致复习时事倍功半。
但是我当时没有及时发现这个问题,直到5月份参加了一次数学模考,发现自己做题时根本就不懂题目考点,在请教一些同学后才开始改过来,在5、6、7月开始疯狂地补数学视频,重新做数学笔记。
所以我的第一个经验就是:学习数学时,最好一边看数学辅导视频,一边做笔记,看完一章后,做相应的辅导习题(高数十八讲、全书等)。
数学150分,是一个特别容易拉分的学科,也是整个考研期间不间断学习的学科,整体时间分配大概是暑假前完成高数十八讲以及线性代数和概率论的基础。
暑假期间属于高数强化阶段做1000题或者660题,并弄清每个题目的考点。
然后9月开始(最迟10月,不然真题训练量不够)开始做数学真题、8套卷、四套卷,并可以将真题的错误记录在改错本上。
同时留出3套左右的试卷,以便在11、12月份自己进行模拟考试。
数学考试在考研第二天08:30~11:30,三个小时的时间。
所以学弟学妹们在学习数学时,也尽量拿上午的时间来学习。
英语一:英语是我的弱项,我英语四级考了两次才过。
但是学弟学妹们不要慌,只要把英语的得分点弄明白然后专攻得分点,也能拿到不错的成绩。
北航计算机研究生课程算法设计与分析HomeWork_1
一、已知下列递推式:C(n) = 1 若n =1= 2C (n/2) + n – 1 若n ≥ 2请由定理1 导出C(n)的非递归表达式并指出其渐进复杂性。
定理1:设a,c 为非负整数,b,d,x 为非负常数,并对于某个非负整数k, 令n=c k ,则以下递推式f(n) =d 若 n=1=af(n/c)+bn x 若 n>=2的解是f(n)= bnx log c n + dn x 若 a=c x f(n)= x x x ax xn c a bc n c a bc d c log 若 a ≠c x解:令F(n) = C(n) – 1则 F(n) = 0 n=1F(n) = 2C(n/2) + n – 2 n>=2= 2[F(n/2) + 1] + n – 2= 2F(n/2) + n利用定理1,其中:d=0,a=2,c=2,b=1,x=1,并且a=cx 所以 F(n) = nlog 2n所以 C(n) = F(n) + 1 = nlog 2n + 1C(n)的渐进复杂性是O(nlog 2n)二、由于Prim 算法和Kruskal 算法设计思路的不同,导致了其对不同问题实例的效率对比关系的不同。
请简要论述:1、如何将两种算法集成,以适应问题的不同实例输入;2、你如何评价这一集成的意义?答:1、Prim 算法基于顶点进行搜索,所以适合顶点少边多的情况。
Kruskal 从边集合中进行搜索,所以适合边少的情况。
根据输入的图中的顶点和边的情况,边少的选用kruskal 算法,顶点少的选用prim 算法2、没有一个算法是万能的,没有一个算法是对所有情况都适合的。
这一集成体现了针对具体问题选用最适合的方法,即具体问题具体分析的哲学思想。
三、分析以下生成排列算法的正确性和时间效率:HeapPermute (n)//实现生成排列的Heap 算法//输入:一个正正整数n和一个全局数组A[1..n]//输出:A中元素的全排列if n = 1write Aelsefor i ←1 to n doHeapPermute(n-1)if n is oddswap A[1]and A[n]else s wap A[i]and A[n]解:n=1时,输出a1n=2时,输出a1a2,a2a1n=3时,(1)第一次循环i=1时,HeapPermute(2)将a1a2做完全排列输出,记为[a1a2]a3,并将A变为a2a1a3,并交换1,3位,得a3a1a2(2)第二次循环i=2时,HeapPermute(2)输出[a3a1]a2,并将A变为a1a3a2,交换1,3位,得a2a3a1(3)第三次循环i=3时,HeapPermute(2)输出[a2a3]a1,并将A变为a3a2a1,交换1,3位,得a1a2a3,即全部输出完毕后数组A回到初始顺序。
北航 ccf 成绩折算 公式
北航CCF成绩折算公式近年来,计算机科学与技术专业越来越受到广大学子的青睐。
而在选择学校时,北航的CCF(我国计算机学会)成绩折算公式成为了不少考生关注的焦点。
那么,什么是北航CCF成绩折算公式呢?本文将从多个角度对此进行解析,帮助读者更好地了解和掌握这一信息。
一、CCF分类和影响1. CCF分类我们来看一下CCF的分类。
根据CCF评定的级别,可以将期刊和会议分为A、B、C三个等级。
其中,A类代表顶级期刊和会议,B类代表中级,C类则为普通级别。
而在考研、毕业设计等方面,CCF-A类是被广泛接受的高水平论文发表论证。
2. CCF的影响CCF作为我国计算机学会对期刊和会议级别的评定标准,对于计算机领域的学术研究具有重要的指导意义。
CCF评定的高低也直接影响着相关领域的学术研究工作,在学术交流、成果认定以及科研项目立项等方面都起着举足轻重的作用。
二、北航CCF成绩折算公式介绍北航CCF成绩折算公式是北航针对学生在发表论文时考虑CCF论文等级的情况下,将SCI、EI等期刊和会议的论文进行等级折算的工具。
因为在学术研究等方面,发表CCF论文被认为是一项有益的成就,所以CCF成绩折算公式可以为学生在评价期刊级别时提供方便。
三、CCF成绩折算公式的计算方法1. 折算公式北航CCF成绩折算公式一般为:CCF成绩=SCI/EI论文数量×权重1+CCF-A类论文数量×权重2+CCF-B类论文数量×权重3。
其中,权重1、2、3分别代表SCI/EI期刊的折算系数、CCF-A类的折算系数和CCF-B类的折算系数。
2. 具体操作在使用北航CCF成绩折算公式时,首先需要明确自己所发表的SCI和EI论文数量,然后再统计CCF-A类和CCF-B类论文数量。
根据折算公式,分别乘以相应的权重并将结果相加,即可得到最终的CCF成绩。
四、CCF成绩折算公式的意义1. 对学生的启示通过CCF成绩折算公式的计算,学生可以清晰地了解自己在学术研究方面的成果,进而更好地指导自己的学术发展方向,激励自己在相关领域的深入探索与研究。
(完整word版)北航研究生算法设计与分析Assignment_2
用分支定界算法求以下问题:某公司于乙城市的销售点急需一批成品,该公司成品生产基地在甲城市。
甲城市与乙城市之间共有n 座城市,互相以公路连通。
甲城市、乙城市以及其它各城市之间的公路连通情况及每段公路的长度由矩阵M1 给出。
每段公路均由地方政府收取不同额度的养路费等费用,具体数额由矩阵M2 给出。
请给出在需付养路费总额不超过1500 的情况下,该公司货车运送其产品从甲城市到乙城市的最短运送路线。
具体数据参见文件:m1.txt: 各城市之间的公路连通情况及每段公路的长度矩阵(有向图); 甲城市为城市Num.1,乙城市为城市Num.50。
m2.txt: 每段公路收取的费用矩阵(非对称)。
思想:利用Floyd算法的基本方法求解。
程序实现流程说明:1.将m1.txt和m2.txt的数据读入两个50×50的数组。
2.用Floyd算法求出所有点对之间的最短路径长度和最小费用。
3.建立一个堆栈,初始化该堆栈。
4.取出栈顶的结点,检查它的相邻的所有结点,确定下一个当前最优路径上的结点,被扩展的结点依次加入堆栈中。
在检查的过程中,如果发现超出最短路径长度或者最小费用,则进行”剪枝”,然后回溯。
5.找到一个解后,保存改解,然后重复步骤4。
6.重复步骤4、5,直到堆栈为空,当前保存的解即为最优解。
时间复杂度分析:Floyd算法的时间复杂度为3O N,N为所有城市的个数。
()该算法的时间复杂度等于DFS的时间复杂度,即O(N+E)。
其中,E为所有城市构成的有向连通图的边的总数。
但是因为采用了剪枝,会使实际运行情况的比较次数远小于E。
求解结果:算法所得结果:甲乙之间最短路线长度是:464最短路线收取的费用是:1448最短路径是:1 3 8 11 15 21 23 26 32 37 39 45 47 50C源代码(注意把m1.txt与m2.txt放到与源代码相同的目录下,下面代码可直接复制运行):#include<stdlib.h>#include<stdio.h>#include<time.h>#include<string.h>#define N 50#define MAX 52void input(int a[N][N],int b[N][N]);void Floyd(int d[N][N]);void fenzhi(int m1[N][N],int m2[N][N],int mindist[N][N],int mincost[N][N]);int visited[N],bestPath[N];void main(){clock_t start,finish;double duration;int i,j,mindist[N][N],mincost[N][N],m1[N][N],m2[N][N]; /* m1[N][N]和m2[N][N]分别代表题目所给的距离矩阵和代价矩阵*/// int visited[N],bestPath[N];FILE *fp,*fw;// system("cls");time_t ttime;time(&ttime);printf("%s",ctime(&ttime));start=clock();for(i=0;i<N;i++){visited[i]=0;bestPath[i]=0;}fp=fopen("m1.txt","r"); /* 把文件中的距离矩阵m1读入数组mindist[N][N] */if(fp==NULL){printf("can not open file\n");return;}for(i=0;i<N;i++)for(j=0;j<N;j++)fscanf(fp,"%d",&mindist[i][j]);fclose(fp); /* 距离矩阵m1读入完毕*/fp=fopen("m2.txt","r"); /* 把文件中的代价矩阵m2读入数组mincost[N][N] */if(fp==NULL){printf("can not open file\n");return;}for(i=0;i<N;i++)for(j=0;j<N;j++)fscanf(fp,"%d",&mincost[i][j]);fclose(fp); /* 代价矩阵m2读入完毕*/input(m1,mindist); /* mindist[N][N]赋值给m1[N][N],m1[N][N]代表题目中的距离矩阵*/input(m2,mincost); /* mincost[N][N]赋值给m2[N][N],m2[N][N]代表题目中的代价矩阵*/for(i=0;i<N;i++) /* 把矩阵mindist[i][i]和mincost[i][i]的对角元素分别初始化,表明城市到自身不连通,代价为0 */{mindist[i][i]=9999;mincost[i][i]=0;}Floyd(mindist); /* 用弗洛伊德算法求任意两城市之间的最短距离,结果存储在数组mindist[N][N]中*//*fw=fopen("1.txt","w");for(i=0;i<N;i++){for(j=0;j<N;j++)fprintf(fw,"%4d ",mindist[i][j]);fprintf(fw,"\n");}fclose(fw);// getchar();//*/Floyd(mincost); /* 用弗洛伊德算法求任意两城市之间的最小代价,结果存储在数组mincost[N][N]中*//*fw=fopen("2.txt","w");for(i=0;i<N;i++){for(j=0;j<N;j++)fprintf(fw,"%4d ",mincost[i][j]);fprintf(fw,"\n");}fclose(fw);// getchar();//*/fenzhi(m1,m2,mindist,mincost); /* 调用分支定界的实现函数,寻找出所有的可行路径并依次输出*/finish=clock();duration = (double)(finish - start) / CLOCKS_PER_SEC;printf( "%f seconds\n", duration );//*/}void Floyd(int d[N][N]) /* 弗洛伊德算法的实现函数*/{int v,w,u,i;for(u=0;u<N;u++){for(v=0;v<N;v++){for(w=0;w<N;w++)if(d[v][u]+d[u][w]<d[v][w]){//printf("v,w,u,d[v][u],d[u][w],d[v][w] %d %d %d %d %d %d",v+1,w+1,u+1,d[v][u],d[u][w],d[v][ w]);getchar();d[v][w]=d[v][u]+d[u][w];}}}}void input(int a[N][N],int b[N][N]) /* 把矩阵b赋值给矩阵a */{int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)a[i][j]=b[i][j];}void fenzhi(int m1[N][N],int m2[N][N],int mindist[N][N],int mincost[N][N]){int stack[MAX],depth=0,next,i,j; /* 定义栈,depth表示栈顶指针;next指向每次遍历时当前所处城市的上一个已经遍历的城市*/int bestLength,shortestDist,minimumCost,distBound=9999,costBound=9999;int cur,currentDist=0,currentCost=0; /* cur指向当前所处城市,currentDist和currentCost分别表示从甲城市到当前所处城市的最短距离和最小代价,currentDist和currentCost初值为0表示从甲城市出发开始深度优先搜索*/stack[depth]=0; /* 对栈进行初始化*/stack[depth+1]=0;visited[0]=1; /* visited[0]=1用来标识从甲城市开始出发进行遍历,甲城市已被访问*/while(depth>=0) /* 表示遍历开始和结束条件,开始时从甲城市出发,栈空,depth=0;结束时遍历完毕,所有节点均被出栈,故栈也为空,depth=0 *//* 整个while()循环体用来实现从当前的城市中寻找一个邻近的城市*/{cur=stack[depth]; /* 取栈顶节点赋值给cur,表示当前访问到第cur号城市*/ next=stack[depth+1]; /* next指向当前所处城市的上一个已经遍历的城市*/for(i=next+1;i<N;i++) /* 试探当前所处城市的每一个相邻城市*/{if((currentCost+mincost[cur][N-1]>costBound)||(currentDist+mindist[cur][N-1]>=distBound)){ /* 所试探的城市满足剪枝条件,进行剪枝*///printf("here1 %d %d %d %d %d %d %d\n",cur,currentCost,mincost[cur][49],costBound,curre ntDist,mindist[cur][49],distBound); getchar();//printf("%d %d %d %d %d %d",cur,i,m1[cur][i],currentCost,mincost[cur][49],costBound); getchar();continue;}if(m1[cur][i]==9999) continue; /* 所试探的城市不连通*/if(visited[i]==1) continue; /* 所试探的城市已被访问*/if(i<N) break; /* 所试探的城市满足访问条件,找到新的可行城市,终止for循环*/ }if(i==N) /* 判断for循环是否是由于搜索完所有城市而终止的,如果是(i==N),进行回溯*/{// printf("here");getchar();depth--;currentDist-=m1[stack[depth]][stack[depth+1]];currentCost-=m2[stack[depth]][stack[depth+1]];visited[stack[depth+1]]=0;}else /* i!=N,表示for循环的终止是由于寻找到了当前城市的一个可行的邻近城市*/{//printf("%d %d %d %d %d %d\n",cur,i,m1[stack[depth]][i],m2[stack[depth]][i],currentCost,curre ntDist);//getchar();currentDist+=m1[stack[depth]][i]; /* 把从当前所处城市到所找到的可行城市的距离加入currentDist */currentCost+=m2[stack[depth]][i]; /* 把从当前所处城市到所找到的可行城市的代价加入currentCost */depth++; /* 所找到的可行城市进栈*/stack[depth]=i; /* 更新栈顶指针,指向所找到的可行城市*/stack[depth+1]=0;visited[i]=1; /* 修改所找到的城市的访问标志*/if(i==N-1) /* i==N-1表示访问到了乙城市,完成了所有城市的一次搜索,找到一条通路*/{// printf("here\n");for(j=0;j<=depth;j++) /* 保存当前找到的通路所经过的所有节点*/ bestPath[j]=stack[j];bestLength=depth; /* 保存当前找到的通路所经过的所有节点的节点数*/shortestDist=currentDist; /* 保存当前找到的通路的距离之和*/minimumCost=currentCost; /* 保存当前找到的通路的代价之和*///costBound=currentCost;distBound=currentDist; /* 更新剪枝的路径边界,如果以后所找到的通路路径之和大于目前通路的路径之和,就剪枝*/if(minimumCost>1500) continue; /* 如果当前找到的通路的代价之和大于1500,则放弃这条通路*/printf("最短路径:%3d,路径代价:%3d,所经历的节点数目:%3d,所经历的节点如下:\n",shortestDist,minimumCost,bestLength+1); /* 输出找到的通路的结果*/bestPath[bestLength]=49;for(i=0;i<=bestLength;i++) /* 输出所找到的通路所经过的具体的节点*/ printf("%3d ",bestPath[i]+1);(完整word版)北航研究生算法设计与分析Assignment_2 printf("\n");depth--; /* 连续弹出栈顶的两个值,进行回溯,开始寻找新的可行的通路*/currentDist-=m1[stack[depth]][stack[depth+1]];currentCost-=m2[stack[depth]][stack[depth+1]];visited[stack[depth+1]]=0;depth--;currentDist-=m1[stack[depth]][stack[depth+1]];currentCost-=m2[stack[depth]][stack[depth+1]];visited[stack[depth+1]]=0;// getchar();}}}}。
北航法硕考研经验整理
北航法硕考研经验整理考取北航法硕研究生并不难,同学们只要掌握好复习方法,调整好心态,就会取得成功。
以下是凯程北航法硕老师给大家整理的一些内容,希望可以帮到同学们。
一、北航法硕考研经验指导及综合复习建议下面是凯程老师介绍的各科的具体学习方法:英语部分:凯程考研老师介绍一下英语的分值分布,10分完形填空,40分阅读理解,10分新题型,10分翻译,10分小作文,20分大作文。
其中分值最大的阅读理解和写作一共有70分,占据了大部分的分数,理所当然成为同学们学习英语最值得重视的部分。
首先说一下怎么快速背单词。
在这里凯程老师推荐几种:1.读音法。
用单词的读音联想汉语意思;2.词根词缀法。
很多单词的词根词缀都有特殊的含义3.词源法,有的简单的单词往往是很多复杂单词的词源等。
根据每个人的基础不同,建议每天背单词不少于1小时,而且背诵的同时一定不能忽略复习的重要性,其往往要比背诵新单词更重要。
再说一下真题,凯程老师提醒同学们一定是真题而不是模拟题,所有模拟题的价值都要远远低于真题,在研究真题的过程中往往会有比题目本身更多的收获,凯程老师在辅导同学复习的过程中重点教授同学们如何去探究出题的角度,揣摩出题者的意图等等。
在平时复习过程中凯程老师会带领同学们重点复习历年真题,对同学严格要求,一定要把真题吃透。
凯程老师教授同学们在做阅读理解时要先看题目,可以先看前两个,这样有助于明白文章大致的内容,一般来说题目与在文章内容的定位顺序是一样的,这样可以有助于定位问题在文章中的位置,并且在阅读的过程中要不断根据上下文去掌握文章的中心思想以此来选出正确的选项,这一点很重要。
最后说一下写作部分。
凯程老师要求同学们复习写作不能仅仅靠模版,因为标准模版的作文分数往往不会很高,所以凯程老师特别注重通过反复模拟写作来提高同学们的写作能力,并且凯程老师会批改同学们的作文,让同学们知道自己的缺点。
专业课部分:法硕的专业课共分为五门:刑法、民法、法理、宪法、法制史。
北航研究生数理统计答案完全版
) , y ~ N ( 2 ,
2
n
),
(m 1) S12m
2
~ (m 1) ,
2
2 (n 1) S 2 n
2
~ 2 (n 1) ,
于是有, ( x 1 ) ~ N (0,
2
m
2 ) , ( y 2 ) ~ N (0,
2
n
2),
则
( x 1 ) ( y 2 ) ~ N (0, (
解:
E( X )
1 1 1 xdx xdx 0 2 2(1 ) 1 1 2 1 1 (1 2 ) 2 2 2(1 ) 2 1 1 1 2 (1 ) 4 4 4
第 4 页 /第 23 页
北京航空航天大学
研究生应用数理统计
书后部分习题解答整理版
做矩估计, x
1 2 , 4 1 。 2
ˆ 2x 可得 的矩估计,
9. ( P80.7)
解: (1)由分布函数得出概率密度函数
f ( x; )
d ( F ( x; ) x 1 x 1 dx 0x 1
n
2
(1 x ) ,
令
ln L n n - 2 (1 x ) 0 ,得到 2 x 1 , 2 2 2
i
ˆ x ˆ x min{x } 。 于是 2 的极大似然估计为 2 1 i
13. ( P81.12) x1 , x 2 ,…, x n 为来自总体 X 的简单样本,试证明下列估计量来自m , nm n
。
ˆz 于是有,
北航研究生数值分析作业第二题
北航研究生数值分析作业第二题北航研究生数值分析作业第二题:一、算法设计方案1.按照题目给出的矩阵定义对矩阵A赋初值:对应的函数为a_init();2.对矩阵A进行householder变换,使其拟上三角化:对应的函数为householder();3.输出拟上三角化后的A:对应的函数为aout(int);4.对拟上三角化后的矩阵A使用带双步位移的QR分解法逐次迭代(最大迭代次数L=500),逐个求出其特征值,对应的函数为eigen_a();中间包含两个子程序:calc_mk()和qr_analyze(),分别用来计算矩阵M k和对M k进行QR 分解并得到A k+1;5.输出QR分解过程完毕后的A及求得的特征向量:对应的函数为aout()和eigenvalout();6.对于在第三步中求得的每个实特征值,使用带原点平移的反幂法求出其对应的特征向量,对应的函数为eigenvec();其中包含一个解方程(A-μI)=y k-1的程序段。
这部分也用迭代完成,仍然将最大迭代次数L设置为500;7.输出矩阵A的特征向量,结束计算:对应的函数为eigenvecout()。
算法编译环境:vlsual c++6.0二、源程序如下:#include#include#define N 10 //矩阵阶数;#define EPSL 1.0e-12 //迭代的精度水平;#define L 500 //迭代最大次数;#define OUTPUTMODE 1 //输出格式:0--输出至屏幕,1--输出至文件double a[N][N], a2[N][N], eigen[N][N]; //声明矩阵A;double sa_re[N] = {0}, sa_im[N] = {0}; //声明矩阵的特征值数组;double u_init[N] = {2,1,2,1,2,1,2,1,2,1}; //定义反幂法中使用的初始向量u;//主程序开始;int main(){FILE *p;void a_init();void householder();void equal_zero(double matrix[N][N], int);void eigenvec();int eigen_a();void aout(int);void eigenvalout(int);void eigenvecout(int);if(OUTPUTMODE){p = fopen("Result.txt", "w+");fprintf(p, "计算结果:\n");fclose(p);}a_init(); //对矩阵A进行初始化;householder(); //对矩阵A进行拟上三角化;equal_zero(a, N); //对矩阵A的元素进行归零处理,消除误差;aout(OUTPUTMODE); //输出A;if(eigen_a()) printf("迭代超过最大次数,特征值求解结果可能不正确。
北航工业工程领域专硕培养方案
北航工业工程领域专硕培养方案
一、背景介绍
北京航空航天大学(Beihang University)是中国高等教育的重要组成部分,也是国家著名的航空航天大学,被誉为中国航空航天教育的卓越学府。
学校拥有三个校区,位于北京市顺义西大街37号、北京大兴新城和桥梓湖新城,其中顺义校区被誉为“中国航天之乡”。
北京航空航天大学从1895年创立至今已有120多年历史,现已拥有24个学院,累计培养研究生约11万人。
学校现有22个博士学位授予单位,68个硕士学位授予单位。
在学校全日制在校学生中,硕士研究生人数约为3万,其中工程学院的硕士研究生约1.8万人。
1、学时安排
根据学校有关规定,本专业的学分要求为32学分
(1)必修课:20学分,主要包括“管理科学”、“管理工程”、“系统工程”、“管理学”、“管理科学技术”等等。
(2)选修课:12学分,主要包括“管理信息系统”、“质量工程”、“计算机辅助设计”等等。
2、专业方向及培养目标
本专业的培养方向为:管理科学及管理工程。
北航的公费研究生制度、奖学金及研究生公费比例
北航的公费研究生制度、奖学金及研究生公费比例——2009年北京航空航天大学研究生招生、培养机制改革一、硕士生培养资助体系(1)学校提供奖学金一等奖学金占20%,享受免学费、生活补400元/月;二等奖学金占30%,享受免学费、生活补贴270元/月;三等奖学金占30%,享受半免学费(交7500元);未获奖学金学生占20%(15000元);(2)导师提供助研金一年级硕士获得导师提供的200-800元/月的助研金(助管、助教除外);二年级(含)以上硕士获得导师提供的300-1000元/月的助研金(助管、助教除外),并配套有优秀奖学金、特困补助和国家助学贷款。
原国家下发的普通奖学金禁飞纳入到整个研究生培养资助体系。
(3)延期硕士生不再享受学校提供的生活补贴,导师可提供0-1000元/月的助研金。
(4)委培硕士生为自筹学费(交15000元),且不享受学校提供的生活补贴,但可享受导师可提供的0-1000元/月的助研金。
二、博士生培养资助体系(1)学校提供奖学金博士(不含在职和委培定向)均获得学校提供的奖学金资助,即免学费,并享受学校提供的生活补贴500元/月。
(2)导师提供助研金博士获得导师提供的500-2000元/月的助研金(助管、助教除外),其中一年级直攻博学生获得导师提供的300-1000元/月的助研金(助管、助教除外),并配套有优秀学生奖学金、特困补助和国家助学贷款。
原国家下发的普通奖学金经费纳入整个研究生培养资助体系。
(3)导师招收博士生指标原则上不超过2名,录取第3名博士生时导师需向学校交纳经费20000元,博士生享受学校提供的生活补贴和导师提供的助研金。
(4)为满足我校重大科研项目的需求,学校每年设立重大科研项目博士指标50名,其奖学金由导师的重大科研项目经费支付,导师需向学校交纳经费40000元,博士生学校提供的生活补贴和导师提供的助研金。
(5)博三以上的博士生(直攻博学生为博四以上)不再享受学校提供生活补贴,导师提供500-2000元/月的助研金。
北航算法分析研究生课程3
• Algorithm B
To find a minimum-weight spanning tree T in a weighted, connected network G with N vertices and M edges.
[Initialize] Label all vertices ―unchosen‖; set T ← a network with N vertices and no edges; choose an arbitrary vertex and label it ―chosen‖. Step 1. [Iterate] While there is an unchosen vertex do step 2 od; STOP. Step 2. [Pick a lightest edge] Let (U, V) be a lightest edge between any chosen vertex U and any unchosen vertex V; label V as ―chosen‖; and set T ← T + (U, V). Step 0.
Does it work?
• There are several questions we should ask about this algorithm;
1. Does it always STOP? 2. When it STOPs, is T always a spanning tree of G? 3. Is T guaranteed to be a minimum-weight spanning tree? 4. Is it self-contained (or does it contain hidden, or implicit, sub-algorithms)? 5. Is it efficient?
北航研究生数分析编程大作业1
数值分析大作业一、算法设计方案1、矩阵初始化矩阵[]501501⨯=ij a A 的下半带宽r=2,上半带宽s=2,设置矩阵[][]5011++s r C ,在矩阵C 中检索矩阵A 中的带内元素ij a 的方法是:j s j i ij c a ,1++-=。
这样所需要的存储单元数大大减少,从而极大提高了运算效率。
2、利用幂法求出5011λλ,幂法迭代格式:011111111nT k k k k k k kk T k k k u R u u y u u Ay y u ηηβ--------⎧∈⎪⎪=⎪=⎨⎪=⎪⎪=⎩非零向量 当1210/-≤-k k βββ时,迭代终止。
首先对于矩阵A 利用幂法迭代求出一个λ,然后求出矩阵B ,其中I A B λ-=(I 为单位矩阵),对矩阵B 进行幂法迭代,求出λ',之后令λλλ+'='',比较的大小与λλ'',大者为501λ,小者为1λ。
3、利用反幂法求出iks λλ,反幂法迭代格式: 011111111nTk k k k k k kk T k k k u R u u y u Au y y u ηηβ--------⎧∈⎪⎪=⎪=⎨⎪=⎪⎪=⎩非零向量 当1210/-≤-k k βββ时,迭代终止,1s k λβ=。
每迭代一次都要求解一次线性方程组1-=k k y Au ,求解过程为:(1)作分解LU A =对于n k ,...,2,1=执行[][]s k n r k k k i c c c c c n s k k k j c cc c k s ks k t k s k r i t t s t i k s k i k s k i js j t k s j r k t t s t k j s j k j s j k <+++=-=++=-=+++----=++-++-++-++----=++-++-++-∑∑);,min(,...,2,1/)(:),min(,...,1,:,1,11),,1max(,1,1,1,11),,1max(,1,1,1(2)求解y Ux b Ly ==,(数组b 先是存放原方程组右端向量,后来存放中间向量y))1,...,2,1(/)(:/:),...,3,2(:,1),min(1.1.11),1max(,1--=-===-=+++-++-+--=++-∑∑n n i c x c b x c b x n i b c b b i s t n s i i t t s t i i i ns n n ti r i t t s t i i i使用反幂法,直接可以求得矩阵按模最小的特征值s λ。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一:判断题1、一个正确的算法,对于每个合法输入,都会在有限的时间内输出一个满足要求的结果。
(对)2、NP完全问题比其他所有NP问题都要难。
(错)3、回溯法用深度优先法或广度优先法搜索状态空间树。
(错,仅深度优先)4、在动态规划中,各个阶段所确定的策略就构成一个策略序列,通常称为一个决策。
(错)5、P类和NP类问题的关系用P⊂NP来表示是错误的。
(错)6、若近似算法A求解某极小化问题一实例的解为Sa,且已知该问题的最优解为Sa/3,则该近似算法的性能比为3。
(错)7、通常来说,算法的最坏情况的时间复杂行比平均情况的时间复杂性容易计算。
(对)8、若P2多项式时间转化为(polynomial transforms to)P1,则P2至少与P1一样难。
(错)9、快速排序算法的平均时间复杂度是O(nlogn),使用随机化快速排序算法可以将平均时间复杂度降得更低。
(错)10、基于比较的寻找数组A[1,…,n]中最大元素的问题下届是Ω(n/3)。
(错)11、O(f(n))+O(g(n))=O(min{f(n),g(n)})(错)12、若f(n)=Ω(g(n)),g(n)=Ω(h(n)),则f(n)=Ω(h(n))(对)13、若f(n)=O(g(n)),则g(n)=Ω(f(n))(对)14、贪婪技术所做的每一步选择所产生的部分解,不一定是可行性的。
(错)15、LasVegas算法只要给出解就是正确的。
(对)16、一个完全多项式近似方案是一个近似方案{Aε},其中每一个算法Aε在输入实例I的规模的多项式时间内运行。
(错)二:简答1、二叉查找树属于减治策略的三个变种中的哪一个的应用?什么情况下二叉查找树表现出最差的效率?此时的查找和插入算法的复杂性如何?答:减治策略有3个主要的变种,包括减常量、减常数因子和减可变规模。
(1) 二叉查找树属于减可变规模变种的应用。
(2) 当先后插入的关键字有序时,构成的二叉查找树蜕变为单支树,树的深度等于n,此时二叉查找树表现出最差的效率,(3) 查找和插入算法的时间效率都属于Θ(n)。
2、何谓伪多项式算法?如何将一Monte Carlo算法转化为Las Vegas算法?答:若一个数值算法的时间复杂度可以表示为输入数值N的多项式,但其运行时间与输入数值N的二进制位数呈指数增长关系,则称其时间复杂度为伪多项式时间。
Las Vegas算法不会得到不正确的解。
一旦用拉斯维加斯算法找到一个解,这个解就一定是正确解。
但有时用拉斯维加斯算法找不到解。
Monte Carlo算法每次都能得到问题的解,但不保证所得解的准确性转化:可以在Monte Carlo算法给出的解上加一个验证算法,如果正确就得到解,如果错误就不能生成问题的解,这样Monte Carlo算法便转化为了Las Vegas算法。
3、构造AVL树和2-3树的主要目的是什么?它们各自有什么样的查找和插入的效率?答:(1)当先后插入的关键字有序时,构成的二叉查找树蜕变为单支树,树的深度等于n,此时二叉查找树表现出最差的效率,为了解决这一问题,可以构造AVL树或2-3树,使树的深度减小。
一棵AVL树要求它的每个节点的左右子树的高度差不能超过1。
2-3树和2-3-4树允许一棵查找树的单个节点不止包含一个元素。
(2) AVL树在最差情况下,查找和插入操作的效率属于Θ(lgn)。
2-3树无论在最差还是平均情况下,查找和插入的效率都属于Θ(log n)。
4、写出0/1背包问题的一个多项式等价(Polynomial Equivalent)的判定问题,并说明为什么它们是多项式等价的。
答:0/1背包问题:从M件物品中,取出若干件放在空间为W的背包里,给出一个能获得最大价值的方案。
每件物品的体积为W1,W2……Wn,与之相对应的价值为P1,P2……Pn。
+判定问题I:从M件物品中,取出若干件放在空间为W的背包里,是否存在一个方案,所获价值≥P*?。
每件物品的体积为W1,W2……Wn,与之相对应的价值为P1,P2……Pn。
若判定问题I存在多项式时间的解法,则反复调用该算法就可以在多项式时间内解决0/1背包的优化问题。
因而这个判定问题与原问题多项式等价。
5、下面问题是否属于NP问题?为什么?问题表述:给定图中的两个点、,整数和,图中每条边的长度及便利这条边的时间,问图中是否存在一条由到的路径,使得其长度大于,且遍历时间小于?答:这个问题属于NP问题。
因为若给出该问题的一个解,可以在多项式时间内检验这个解的正确性。
如给出一条由p到q的路径,可以在多项式时间内计算出它的长度及遍历时间,然后分别与C和t进行比较,从而可以判断这个解的对错。
分治题1.写出一个求解下列问题的分治算法,推导其时间复杂性并与蛮力法相比较。
给定互不相等的n个数的一个序列,若其中某两个数和的关系为:且,则称和是逆序的。
要求计算该序列中的逆序个数,即具有逆序关系的元素对的总数目。
解:/** *求解n个数的一个序列,具有逆序关系的元素对的总数目*/count = 0; //逆序元素对的全局计数变量mergeInvertedPairs(A,low,mid,high) {i = low;j = mid+1;k = low;tmp[n]; //用于归并排序的辅助数组while i <= mid && j <= high {if (A[i] > A[j]) {tmp[k] = A[j++];count += (mid-i+1); //相比归并排序,就多了这一条语句} else {tmp[k] = A[i++];}k++;}while i <= mid {tmp[k++] = A[i++];}while j <= high {tmp[k++] = A[j++];}for (j = low; j <= high; j++) {A[j] = tmp[j];}}findInvertedPairs(A[], low, high) {if (low < high) {mid = (low+high) / 2;findInvertedPairs(A,low,mid);findInvertedPairs(A,mid+1,high);mergeInvertedPairs(A,low,mid,high);}算法思路:以归并排序为基础,在两两集合合并的时候如果前一个集合的元素a[i]>a[j],那么说明需要调整次序,逆序数num=num+mid-i。
时间复杂度的迭代公式为11;(n)2(n/2)(n)n1;nTT O=⎧=⎨+>⎩因此算法的时间复杂度为T(n)=O(nlogn);蛮力法的时间复杂度为O(n2),当n数目较大时,分治法计算规模远小于蛮力法。
2.为一个整数序列,中的整数如果在中出现次数多余,那么称为多数元素。
例如,在序列中3是多数元素,因为出现了4次,大于。
求A的多数元素问题的蛮力算法复杂性如何?设计一个具有变治思想的算法,提高蛮力算法的效率,写出伪代码并分析其事件复杂性。
2. num <- src[0];count <-0;for i <-0 to n-1do{if(num == src[i]){count++;}else{count--;if(count <0){num <- src[i];count = 0;}}}采用减治的思想每一个减去一个元素,时间复杂度为O(n),蛮力法的时间复杂度为O(n2)。
动态规划题1.已知:对每个月来讲,生产一批产品的固定成本费为3(千元),若不生成,则为零。
每生产单位产品的成本费为1(千元)。
同时,在任何一个月内,生产能力所允许的最大生产批量为不超过6个单位。
又知:每单位产品的库存费用为每月0.5(千元),同时要求在第一个月开始之初,及在第四个月末,均无产品库存。
问:在满足上述条件下,该厂应如何安排各个时期的生产与库存,使所花的总成本费用最低?写出你所设的状态变量、决策变量、状态转移方程与递推关系式,和手工求解的详细步骤及结果。
解:设阶段序数k表示月份,状态变量x k为第k个月初拥有的单位产品数量,亦为第k-1月末时的单位产品数量,决策变量u k为第k个月生产的单位产品数量,c k为第k月份需要的产品数量,这里x k和u k均取离散变量。
状态转移方程为: , k =1,2,3,4; 且x1=0。
k段允许决策集合为: k = 1,2,3;当k=4时,。
设为第k月的成本费,单位为(千元),则,故指标函数为令表示为由出发采用最优生产方案到第4个月结束这段期间的产品成本。
根据最优化原理,则有递推公式:其中:逆序计算的详细步骤如下:(1)当k=4时,(2)当k=3时,因为,且所以有:当此时在处取得最小值。
当,此时在处取得最小值。
当,此时在处取得最小值。
当,此时,在处取得最小值。
当,此时,在处取得最小值。
当,此时,在处取得最小值。
当,此时,在处取得最小值。
(3)当k=2时,因为,且所以有:当时,,在处取得最小值。
当时,,且在处取得最小值。
当时,,在处取得最小值。
当时,,且在处取得最小值。
当时,,且在处取得最小值。
当时,,且在处取得最小值。
当时,,且在处取得最小值。
(4)当k=1时,因为,所以有:当,,且在处取得最小值。
综上所述,最优的库存方案为:第一月生产5单位产品,第二月和第四月不生产,第三月生产6单位产品。
2.用动态规划方法手工求解以下问题有8万元的投资可以投给3个过目,每个项目在不同筒子数额下(以万元为单位)的利润如下表请安排投资计划,使总的利润最大。
写出你所设的状态变量、决策变量、状态转移方程与递推关系式和手工求解的详细步骤及结构。
解:状态变量:x k 表示留给项目k..n的投资额,其中n为项目总个数,k=1..n.决策变量:u k 表示投给项目k的投资额.允许决策集合:状态转移方程:递推关系式:其中,表示项目k的投资额为u k时的盈利.针对本题,n = 3,x k最大取8手工详解过程:1. 初始化k = 32. k = 23. k = 1最终结果:给项目1投资4万元,项目2投资4万元,项目3不投资,将获得最大利润140万元.线路题的某种深搜解法:1)可以根据线路(l1,l2,...,lm)的取舍构建一棵m层二叉搜索树。
第i层的所有左分支表示铺设线路li,右分支则表示不铺设。
如果存在可行解,遍历此二叉搜索树即可找到最优解。
2)前进:当前节点未被剪枝并且仍有子节点即可继续前进。
分支:先遍历左分支,后遍历右分支。
回溯:左右分支都被遍历时返回父节点。
剪枝:剪枝条件如下:1。
有环路2。
当前地井数 + 地井数下界 > UMAX3。