- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【算法-分治策略应⽤】循环赛⽇程表问题
⼀、分治策略基本思想
1、Divid
将原始问题划分或者归结为规模较⼩的⼦问题(多数情况下是划分成2个)
2、Conquer
递归或迭代求解每个⼦问题
3、Combin
将⼦问题的解综合得到原问题的解
注意:
1、⼦问题与原始问题性质完全⼀样
2、⼦问题之间可彼此独⽴地求解
3、递归停⽌时⼦问题可直接求解
⽐较典型的应⽤例⼦是“归并排序法”和“快速排序法”,详细可以参考屈婉玲等编著的《算法设计与分析》(第2版)P26和P37,此处不
再赘述。
⼆、题⽬分析和建模
1. 问题描述
k
设有n=2 个选⼿要进⾏⽐赛,设计的⽐赛⽇程表需要满⾜以下要求:
1)每个选⼿必须与其他n-1个选⼿各赛⼀次;
2)每个选⼿⼀天只能赛⼀次;
3)整场循环赛⼀共进⾏n-1天。
2. 题⽬建模
将⽐赛⽇程表设计成n⾏×n-1列的⼀个表,表中第i⾏第j列的元素表⽰第i个选⼿在第j天所遇到的选⼿。
(1)⾸先看只有两个选⼿的⽇程表(k=1,n=2,2⾏×1列表格,循环赛进⾏1天):
表1 循环赛⽇程表(2⼈)
(2)四个选⼿的⽇程表(k=2,n=4,4⾏×3列表格,循环赛进⾏3天):
2
⾸先n=2 ,所以应该退化到求解两个2⼈循环赛的问题,⽇程表构建如下:
表1 循环赛⽇程表(2⼈) 表2 循环赛⽇程表(2⼈)
将表2抄在表1右侧构成表1*,将表1抄在表2右侧构成表2*,将表1*与表2*按次序上下拼接,构成表3:
表3 循环赛⽇程表(4⼈)
由于表1和表2中运动员完全不同,拼接之后每⼀⾏和每⼀列都不会存在两个相同号码,也就是说拼接后不会产⽣⼀个选⼿在同⼀天和另外⼀
个选⼿⽐赛两次的情况,说明这种拼接是合理的。
(3)⼋个选⼿的⽇程表(k=3,n=8,8⾏×7列表格,循环赛进⾏7天)
3
n=2 ,⾸先应该退化到4⼈循环赛问题,再退化到2⼈循环赛问题,4⼈退化到2⼈已在 2)中详细描述,此处只说明如何退化到4⼈问题:
表3 循环赛⽇程表(4⼈) 表4 循环赛⽇程表(4⼈)
拼接⽅法与(2)中相同,构成表5:
表5 循环赛⽇程表(8⼈)
三、算法设计
(1)设计思想:
k k k-1
设n=2 采⽤分治策略,将所有参加⽐赛的选⼿分成两部分,n=2 个选⼿的⽐赛⽇程表就可以通过两个n=2 个选⼿的⽐赛⽇程表来决
定。递归执⾏这样的分隔,直到只剩下两个选⼿,可以直接构造⽐赛⽇程表。⽐赛⽇程表就可以通过这样的分治策略来逐步构建。
整个过程可以看作4个部分:
k-1
1)求左上⾓⼦表:左上⾓⼦表是前2 个选⼿的⽐赛前半程的⽐赛⽇程。
k-1 k-1
2)求左下⾓⼦表:左下⾓⼦表是剩余2 个选⼿的⽐赛前半程的⽐赛⽇程,这个⼦表中元素等于与左上⾓⼦表对应位置元素加上2 。
3)求右上⾓⼦表:等于左下⾓⼦表。
4)求右下⾓⼦表:等于左上⾓⼦表。
(2)伪代码:
输⼊:选⼿⼈数n设n恰好为2的k次⽅
输出:⽐赛⽇程表A[1..n,1..n]
1. input n //输⼊选⼿⼈数
2. for i-1 to n //设置运动员的编号,⽐赛⽇程表的第1列为选⼿编号列
3. A[i,1]-i
4. end for
5. Procedure(1,n) //过程调⽤
6. for i-1 to n
7. for j-1 to n
8. output A[i,j] //输出⽐赛⽇程表
9. end for
10. end for
过程调⽤:Procedure(i,k) //i表⽰起始⾏,k表⽰选⼿⼈数
1. if k=2 then //如果选⼿⼈数为2个,则可以直接处理输出
2. A[i+1,2]-A[i,1]
3. A[i,2]-A[i+1,1]
4. else
您可能关注的文档
- 《中医养生康复学》教学大纲.pdf
- 《最精彩的表演》阅读答案.pdf
- 「二年级音乐教案(上册)」.pdf
- 「哈工大数字电子技术基础习题册2010-答案6-7章」.pdf
- 【《病梅馆记龚自珍》阅读答案及翻译】病梅馆记龚自珍翻译.pdf
- 【地理】地理综合题答题技巧.pdf
- 【老会计经验】税务内控管理:为企业筑牢“防火墙”.pdf
- 【小学】人教版三年级数学上册第二章《万以内的加法和减法(一)》模拟卷(第四套).pdf
- 【知识学习】教务主任培训班开班学员表态发言.pdf
- 【A+版】知名上市公司超完整内部财务管理手册.pdf
- 【C疯狂的教材】(九)C语言指针(一).pdf
- 【C语言】MinGW下载及安装教程(过于详细).pdf
- 【word文档可编辑】天津市中考地理易错易混100选择题组题精粹含解析.pdf
- 〖2021年整理〗《垂径定理》同步辅导.pdf
- 1.2《数据库系统概论》之数据模型(概念模型、逻辑模型--物理模型、层次模型、网状模型、关。。。.pdf
- 1.3《数据库系统概论》之数据库系统结构和组成(内模式、模式、外模式、人员……).pdf
- 1.5 函数y=Asin(ωx+φ)的图象 教学设计(合肥十中 刘先群).pdf
最近下载
- 2022二级建造师《法规》章节练习5.2.docx VIP
- 钢铁公司烧结厂绩效考核和薪酬方案(55)课件.pptx VIP
- AVEVA Marine 船舶生产设计培训中文材料 (基础培训).pdf VIP
- 麦肯锡L1-L5业务流程规划方法论及流程规划方案设计.pdf VIP
- 信息系统安全评估报告.docx VIP
- springboot-微信小程序“遇见宠爱”—宠物业务系统-论文13000字.docx VIP
- 24219-Python语言基础国家开放大学题库国家开放大学题库.docx VIP
- 超星学习通网课《创新创业基础李家华》尔雅答案2025题目及答案.docx
- 风电微观选址方案模板.doc VIP
- 农业现代化智慧农业园区建设方案.docx VIP
原创力文档


文档评论(0)