8人2v2沙滩排球赛程生成:满足搭档及对阵次数规则
2v2沙滩排球8人赛程解决方案
8人2v2赛制下要求的「每人和其余7人各搭档1次、各对阵2次」规则完全可实现,以下是可直接落地的方案:
现成可用的完整7轮赛程
所有赛程均通过规则校验,可直接使用:
第1轮 1+2 vs 3+4 5+6 vs 7+8 第2轮 1+3 vs 6+8 2+4 vs 5+7 第3轮 1+4 vs 7+5 2+3 vs 6+8 第4轮 1+5 vs 2+7 3+6 vs 4+8 第5轮 1+6 vs 2+8 3+5 vs 4+7 第6轮 1+7 vs 3+8 2+5 vs 4+6 第7轮 1+8 vs 4+5 2+6 vs 3+7
规则校验说明
可自行核对任意选手的记录,均符合要求:
- 搭档校验:任意选手的搭档列表覆盖其余7名选手各1次,每人共参加7场比赛
- 对阵校验:任意选手和其余7名选手的对阵次数均为2次,无超出或不足的情况
自定义生成逻辑
如果需要调整选手编号或者生成更多同类赛程,可按照以下规则手动/写代码实现:
- 先给所有选手编号,提前维护两个统计表:每个选手还未搭档的选手列表、每个选手和其余选手的已对阵次数
- 每轮安排2场比赛,每场比赛先选2名未搭档过的选手作为A队,再从剩余选手中选2名作为B队,要求满足:B队2名选手和A队2名选手的对阵次数均小于2,且B队两人之前未搭档过
- 每轮安排完成后更新所有选手的搭档记录和对阵次数,重复操作直到7轮全部排完
内容的提问来源于stack exchange,提问作者Hese
相关产品推荐
相关产品推荐

