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

PAGE

PAGE 2

深 圳 大 学 实 验 报 告

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

实验项目名称: 分治算法

--矩阵相乘的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实现循环赛日程表问题的算法_循环赛日程表的分治算法实现实验报告_gxl.doc...

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

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

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

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

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

  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. 敏感数据,“一键脱敏”,Sharding Sphere 完美搞定
  2. Zookeeper的安装与配置
  3. 【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read from remote )
  4. python字符串逆序输出代码_一行代码实现字符串逆序输出
  5. 一张以你为中心的地图
  6. No controller found
  7. 使用触发器对学生表操作进行日志记录
  8. 北大青鸟软件工程师 ACCP6.0课程体系
  9. 蓝奏云自定义域名链接替换网站源码
  10. 1082 射击比赛(JAVA)
  11. 掘安平台Writeup(持续解题)
  12. java输出26个字母_Java语言:输出26个英文字母(从键盘输入)
  13. python爬虫实验总结_python3爬虫总结(共4篇).docx
  14. 详解clickhouse分区目录的合并过程
  15. 哈工大计算机系统大作业-程序人生
  16. P4设计实现链路监控
  17. 爬虫实战10—日志、守护线程以及验证码处理
  18. 升级Big Sur系统后指纹解锁出现问题怎么办
  19. 四元素基础理论及其应用
  20. 最新国家行政区划代码,来自国家统计局2018年底最新数据

热门文章

  1. directsound示例程序出错解决办法
  2. Java线程和进程区别
  3. Spring事务剖析-TransactionManager
  4. Spring AOP事务实现原理之事务管理器TransactionManager
  5. 3月全网最火的红人排行榜出炉
  6. GPU更多参与 Windows7 WDDM1.1版浅析
  7. 蓝桥杯—出栈次序 (JAVA)
  8. 比较几款很经典的三星S3C6410开发板 各有特色,可满足你的不同需求
  9. 十二、G1垃圾收集器
  10. Java 多组时间取交集、并集、合并