循环赛日程表的分治算法实现实验报告_gxl

深 圳 大 学 实 验 报 告

课程名称: 算法设计与分析

实验项目名称: 分治算法

--矩阵相乘的Strassen算法及时间复杂性分析

或--循环赛日程表的分治算法实现

或--多项式乘积问题的分治算法及时间复杂性分析

学院:

专业、班级:

指导教师:

报告人: 学号:

实验时间:

实验报告提交时间:

教务处制

实验目的与实验内容

1.1实验目的

通过本设计性实验,理解递归算法以及分治算法的基本思想。理解Strassen矩阵乘法的理论分析或循环赛日程表的分治算法以及编程实现。掌握多项式乘积的分治方法。能对递归算法以及分治算法进行设计、分析。

本课程实验目的是验证、巩固和补充课堂讲授的理论知识。培养学生初步具备独立设计算法和对给定算法进行复杂性分析的能力,为后继课程和实际工作打下基础。

1.2实验题目 (三题任选一)

题目1:设计一个矩阵相乘的Strassen算法编程实现并做算法的时间复杂性分析。其中:乘积矩阵C = A*B, A=(aij)n*n,B=(bij)n*n(1)考虑n为2的幂次方的情形,取n=8实现分治递归; (2)考虑n不是2的幂次方,n为偶数的情形,设计一个传统方法与的Strassen算法相结合的矩阵相乘算法,取n=12实现分治递归(可以有多种方案实现);矩阵A,B元素自动生成,限定矩阵元素在0-10之间。

题目2:设计一个满足以下要求的循环比赛日程表:()

(1)每个选手必须与其他n-1个选手各赛一次;

(2)每个选手一天只能赛一次;

(3)当n是奇数时,循环赛一共进行n天, n是偶数时,循环赛进行n-1天。

题目3:设计一个多项式乘积问题的分治算法并做算法的时间复杂性分析

1.3实验要求:

题目1具体要求:

(1)矩阵阶数n由用户输入(注意n非 2k 时的处理);

(2)n阶矩阵A、B调用随机函数自动生成,限定矩阵元素在0-10之间;

(3)输出A、B及C=A*B

其中:输出传统定义矩阵乘积结果和Strassen矩阵乘积的结果,验证分治算法的正确性;

(4)对直接计算(传统定义)矩阵乘积、Strassen矩阵乘积进行执行时间统计,分别记为T1,T2,并给出对比和时间复杂性分析。

题目2具体要求:

(1)选手人数n由用户输入(注意n为奇数和偶数时的不同处理);

(2)验证n=2k的比赛日程表;

(3)完成n=2k+1和n=2k的不同处理并输出形如下表的比赛日程表。其中: k 为【5,7】间的整数;

1

2

3

4

5

6

7

8

9

10

2

1

5

3

7

4

8

9

10

6

3

8

1

2

4

5

9

10

6

7

4

5

9

1

3

2

10

6

7

8

5

4

2

10

1

3

6

7

8

9

6

7

8

9

10

1

5

4

3

2

7

6

10

8

2

9

1

5

4

3

8

3

6

7

9

10

2

1

5

4

9

10

4

6

8

7

3

2

1

5

10

9

7

5

6

8

4

3

2

1

表 分治法n=10的比赛日程表

题目3具体要求:

对教材114页第21题的数据,完成两个多项式乘积的分治算法:

多项式Pn(X)的n与Qm (X)的m由用户输入;

输出直接计算多项式乘积和分治算法多项式乘积的结果,验证分治算法的正确性;

对直接计算多项式乘积、分治算法多项式乘积进行执行时间统计,分别记为T1,T2,并给出对比和时间复杂性分析。

对P4(X)= X4 – X3 + X2 - X +1与Q5 (X)= X5 –3 X+ -10,按要求(1)~(3)完成两个多项式乘积的分治算法。

开发环境

VC 6.0编程软件

算法简述

总体思路:按分治策略,将所有分为两半,n个选手可以通过n/2个选手设计的比赛日程表来决定。递归地用一分为二的略对选手进行分割,直到只剩下两个选手。

对于N为奇数的情况可以虚拟多一个选手,使其编程N+1个选手的日程表,最然后忽略虚拟运动员参与的比赛。对于分割时候N/2的情况也做特殊处理, 前n/2轮比赛空选手与下一个未参赛的选手进行比赛。

模型求解

程序设计(方案)说明(如:你如何实现矩阵划分、矩阵结果的合并

python实现循环赛日程表问题的算法_循环赛日程表的分治算法实现实验报告_gxl.doc...相关推荐

  1. python实验报告代写价格_代写OS python程序作业、代写代写OS作业、代写OS实验报告...

    代写OS python程序作业.代写代写OS作业.代写OS实验报告 日期:2018-06-11 03:21 CSE 304 - Operating Systems DUE: June 11. Subm ...

  2. 全相位数字信号处理方法及matlab实现,数字信号处理及matlab实现_实验报告册.doc...

    数字信号处理及matlab实现_实验报告册.doc 数字信号处理及MATLAB实现实验报告实验人孙敬贤实验1离散时间信号产生及频谱分析一.实验目的㈠掌握MATLAB产生常用离散时间信号的产生方法.㈡掌 ...

  3. python实现循环赛日程表问题的算法_循环赛日程表的分治算法实现实验报告gxl.doc...

    循环赛日程表的分治算法实现实验报告gxl PAGE PAGE 2 深 圳 大 学 实 验 报 告 课程名称: 算法设计与分析 实验项目名称: 分治算法 --矩阵相乘的Strassen算法及时间复杂性分 ...

  4. python自带的对称算法_一种基于对称算法和专用加载模块的Python程序模块加密方法...

    一种基于对称算法和专用加载模块的Python程序模块加密方法 [专利说明]一种基于对称算法和专用加载模块的Python程序模块加密方法 技术领域 [0001]本发明涉及一种网络安全技术,具体涉及一种P ...

  5. python扫雷 高级算法_扫雷游戏的布雷算法、策略与优化(附Python代码)

    1 布雷算法的应用 在扫雷游戏中,将雷均匀地分布在局面中依靠一种布雷算法.众所周知,在原始版本的Windows扫雷中,由于布雷算法的缺陷,使得其存在Board Cycle(局面循环).而标准扫雷游戏中 ...

  6. python矩阵乘法分治算法_矩阵乘法的Strassen算法详解 --(算法导论分治法求矩阵)...

    1 题目描述 2 思路分析 3 解法 4 小结 1 题目描述 请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法. 2 思路分析 根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数 ...

  7. k均值算法 二分k均值算法_如何获得K均值算法面试问题

    k均值算法 二分k均值算法 数据科学访谈 (Data Science Interviews) KMeans is one of the most common and important cluste ...

  8. mysql区间算法_「五大常用算法」一文图解分治算法和思想

    前言 分治算法(divide and conquer)是五大常用算法(分治算法.动态规划算法.贪心算法.回溯法.分治界限法)之一,很多人在平时学习中可能只是知道分治算法,但是可能并没有系统的学习分治算 ...

  9. k近邻算法_图穷匕见:K近邻算法与手写数字识别

    机器学习算法是从数据中产生模型,也就是进行学习的算法.我们把经验提供给算法,它就能够根据经验数据产生模型.在面对新的情况时,模型就会为我们提供判断(预测)结果.例如,我们根据"个子高.腿长. ...

最新文章

  1. 值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)
  2. MyBatis之CRUD详解
  3. HDLBits 系列(14) Latch and Dff and Edge detect
  4. googleapiclient.discovery
  5. Reporting Service 钻取
  6. 为SAP Analytics Cloud的story创建持久化页面
  7. 服务器返回值 解释 ajax提交方式 后台数据刷进前端
  8. http请求时,GET与POST区别
  9. 半学期学计算机有感论文,【计算机学习心得论文】_计算机学习心得论文参考资料-毕业论文范文网...
  10. 即时通信(IM)和实时通信(RTC)的区别
  11. python动态变量名以及调用_Python 动态变量名与调用介绍
  12. SpringBoot接口加密与解密
  13. 史上最牛恶搞小游戏,快快转发,分享这份“快乐”
  14. Recommended software
  15. 雅可比(Jacobi)计算特征值和特征向量
  16. bmp格式图片缩放(位图缩放)
  17. 【ParaView教程】第四章 常见问题 —— 怎样在ParaView中绘制矢量分量的等值线/面?
  18. 尚硅谷在线教育一:尚硅谷在线教育相关的基本搭建配置以及讲师管理模块
  19. CSS(红色标记:待练习效果)
  20. java程序员在交接别人的工作时如何保证顺利交接?

热门文章

  1. 新手必读:笔记本电脑日常维护的经验技巧
  2. 2023社工准考证什么时候打印 具体时间是几号
  3. Vxworks学习(四)_内核
  4. jenkins最完整自动打包编译备份,跨服务器拷贝,git自动触发构建
  5. 4.从零开始搭建基于SpringCloud的京东整站_用户微服务_后台登录鉴权
  6. 国外Essay写作句型技巧学习
  7. 关于AutoCAD反复弹窗Nonvalid Software Detected的解决办法
  8. transactionManager手动事物管理--记一次重大的生产事故
  9. 谷粒商城-商城业务(首页渲染和nginx)
  10. 网站图片优化技巧助关键词快速提升