赛程安排问题
来源:互联网 发布:php closure类 编辑:程序博客网 时间:2024/04/27 17:22
现在有2^n次方个选手参加比赛,已知两个选手比赛时总是强的一方获胜,且不会出现两个选手一样强的情况。每个选手每天只能同一个选手比赛。试给出一个赛程的安排表,使得在 n(n+1)/2 天内确定所有选手的强弱关系。
尝试用数学方法解决吧
1.n=1的时候两个人的比较需要1天,成立;
2.假设n的时候,最多需要 n(n+1)/2 天,现在我们来证明 2^(n+1)个人的时候需要 (n+1)(n+2)/2天。
首先我们把这 2^(n+1)个人分成两组,一组 2^n个人,记为A组跟B组。
由归纳可知 每组的强弱确定需要 n(n+1)/2 天确定,所以现在问题变为是否能在 (n+1)(n+2)/2 - n(n+1)/2 = n+1 天内确定A组跟B组的关系;
首先已经通过归纳法得到A,B组的两条强弱序列:
A : A1,A2,A3 ... Ak -----》 A1最强,Ak最弱
B : Bk,Bk-1,Bk-2... B1 ------》 Bk最弱,B1最强
现在让两组的Ai与Bi比赛,需要一天时间。
假设序号p为第一个 Ai输给Bi的序号,即p之前都是Ai获胜、p之后都是Bi获胜,这一点由分别是递减和递增的顺序可以保证;
现在我们得到两个分组:一个强者组,包含A1~Ap和 Bp~B1,一个弱者组Ap~Ak和Bk~Bk,很明显两组的人数都是2^n;
而强者组的任意一个人都要比弱者组的任意一个人强,所以现在我们如果能在n天内确定强者组的两个序列的关系以及弱者组两个序列的关系,那么加上刚才的这一天,即可以在n+1天内确定A组跟B组的关系。
很明显这又是一个归纳法的证明,相信大家都会~就不再详述了~
- 赛程安排问题
- 赛程安排问题
- 单循环赛程安排问题
- 【分治法】赛程安排问题
- 分治算法之赛程安排问题
- 循环赛程安排
- 循环赛程安排
- 分治法--循环赛赛程安排
- 【模拟退火】【NOI2008】赛程安排
- 分治算法-选手赛程安排
- 循环赛赛程安排---递归思想
- 分治算法求解赛程安排
- 赛程安排--基于多边形思想
- 第十四届男篮世锦赛赛程安排
- 【程序8】乒乓球比赛赛程安排
- 比赛赛程安排算法--分治算法
- 中超赛程编排问题
- 网球循环赛赛程安排(分治策略)---附带详细代码
- js excel 打印信息表
- 【路由器设置※tplink路由器设置方法和详细图解※】
- LeetCode_Rotate Image
- Struts开发问题集锦
- 信号和信号量
- 赛程安排问题
- .Net Json格式序列化
- Eclipse快捷键大全
- android2.2应用开发之IccCard(sim卡或USIM卡)
- 互联网常见Open API文档资源(转载)
- 简易计算器
- Solrcloud/solr4.0/solr4.2/solr4.3/solr4.x (实时搜索)NRT及commit 相关问题
- Linux之#pragma的用法
- jfreechart