logo资料库

并行计算课程算法报告.doc

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
一、综合训练目的与要求
二、综合训练任务描述
三、算法设计
四、详细设计及说明
五、调试与测试
六、实习日志
七、实习总结
八、附录:核心代码清单
附件二 【学生用】 西北农林科技大学信息工程学院 《算法分析与设计》综合训练实习报告 题 目: 矩阵乘法 学 姓 号 2012013330 名 杨康 专业班级 软件工程 121 指导教师 李宏利 实践日期 2014 年 6 月 23 日 - 6 月 27 日
目 录 一、综合训练目的与要求......................................................................................................................1 二、综合训练任务描述..........................................................................................................................1 三、算法设计..........................................................................................................................................1 四、详细设计及说明............................................................................................................................11 五、调试与测试....................................................................................................................................11 六、实习日志........................................................................................................................................13 七、实习总结........................................................................................................................................14 八、附录:核心代码清单....................................................................................................................14
一、综合训练目的与要求 本综合训练是软件工程专业重要的实践性环节之一,是在学生学习完《算法分析》课程 后进行的综合练习。本课综合训练的目的和任务: 1. 巩固和加深学生对算法分析课程基本知识的理解和掌握; 2. 培养利用算法知识解决实际问题的能力; 3. 掌握利用程序设计语言进行算法程序的开发、调试、测试的能力; 4. 掌握书写算法设计说明文档的能力; 5. 提高综合运用算法、程序设计语言、数据结构知识的能力。 二、综合训练任务描述 使用 Strassen 算法实现矩阵乘法 (1) 要求掌握分治法; (2) 设计一个界面,显示计算结果; (3) 编程语言不限; 三、算法设计 (1) 文字描述 a、分治法: 概念:采取各个击破的技巧来解决一个规模较大的问题,该技巧是很多高效算法的 基础。 思想:“分而治之”。把一个复杂的问题分成两个或更多的相同子问题,再把子问题 分成更小的子问题,直到最后各个子问题可以简单地直接求解,对各个子问题的解进行 合并,即得原问题的解。 b、分治法的求解步骤 步骤 1:分解。 将问题进行分解为若干个规模较小、相互独立、与原问题形式相同的子问题。 步骤 2:治理。 步骤 2-1:求解各个子问题 若子问题规模较小而容易被解决则直接求解,否则再继续分解为更小的子问题,直 到容易解决为止。 步骤 2-2:合并 将以求得的各个子问题的解合并为原问题的解。 (2) 框图 根据对课题的分析,我所创建的框图如图 1 所示: 1
图 1 (3) 伪代码 ------------------------------------------------------------------------ 分治法实现矩阵相乘 ------------------------------------------------------------------------ #include #include #include 2
#include using namespace std; ifstream infile("data1.txt",ios::in); void Input(int n,int **A) { //infile>>n; for(int i=0; i>A[i][j]; } void Output(int n,int **A) { for(int i=0; i
A[i+n][j]=A21[i][j]; A[i+n][j+n]=A22[i][j]; } } void Sub(int n,int **A,int **B,int **C) { int i,j; for(i=0; i
M1=new int*[n]; M2=new int*[n]; M3=new int*[n]; M4=new int*[n]; M5=new int*[n]; M6=new int*[n]; M7=new int*[n]; T1=new int*[n]; T2=new int*[n]; int i; for(i=0; i
cout<<"B12-B22"<
分享到:
收藏