我参加了一场循环赛,我为8支球队创造了所有必要的比赛(每位参赛者7场比赛)。然而,我需要每个参与者10场比赛,这意味着我需要复制比赛,并且除此之外,1和5不能互相比赛。您可以从下面的数据中看到我为每个参与者(游戏数量)按照创建的顺序生成的游戏。
我试图找出最好的方法来复制比赛并最终分配比赛,使得没有比赛重复三次并且仍然保留每个参赛者10场比赛并且1和5不参加比赛彼此。任何建议将有助于如何解决这个问题。这也需要是一个通用的解决方案,其他可能性仍然有效。
1 (6)
1 vs 2
1 vs 3
1 vs 4
1 vs 6
1 vs 7
1 vs 8
2 (7)
1 vs 2
2 vs 4
2 vs 3
2 vs 6
2 vs 5
2 vs 8
2 vs 7
3 (7)
3 vs 4
1 vs 3
2 vs 3
3 vs 7
3 vs 8
3 vs 5
3 vs 6
4 (7)
3 vs 4
2 vs 4
1 vs 4
4 vs 8
4 vs 7
4 vs 6
4 vs 5
5 (6)
5 vs 6
5 vs 7
5 vs 8
2 vs 5
3 vs 5
4 vs 5
6 (7)
5 vs 6
6 vs 8
6 vs 7
2 vs 6
1 vs 6
4 vs 6
3 vs 6
7 (7)
7 vs 8
5 vs 7
6 vs 7
3 vs 7
4 vs 7
1 vs 7
2 vs 7
8 (7)
7 vs 8
6 vs 8
5 vs 8
4 vs 8
3 vs 8
2 vs 8
1 vs 8
答案 0 :(得分:1)
首先,你没有严格定义什么是"均匀分布"配对。所以我建议这意味着每对球队都要打1场或2场比赛。有了这个限制,我有一个原始案例的解决方案和一般案例的一些想法。
1 2 3 4 5 6 7 8
----------------------
1 | 0 2 2 1 0 1 2 2
2 | 2 0 1 2 1 2 1 1
3 | 2 1 0 2 2 1 1 1
4 | 1 2 2 0 2 1 1 1
5 | 0 1 2 2 0 2 2 1
6 | 1 2 1 1 2 0 1 2
7 | 2 1 1 1 2 1 0 2
8 | 2 1 1 1 1 2 2 0
相同的矩阵,细胞根据值着色:
此矩阵是对称的,每行(和每列)总计最多10个,这意味着每个团队的游戏总数根据需要为10。所有值都是1或2,除了主对角线上的零(团队不自己玩)和(1,5)和(5,1)单元格(团队1和5不相互玩)。
我将解释如何通过多个步骤构建原始案例的矩阵。这些步骤可以针对几种不同的条件进行推广。但并不适合所有人。我不建议解决最常见的案例。
[6 7 7 7 6 7 7 7]
,其中6代表位置1和5。[8 8 8 8 8 8 8 8]
。好的。[10 10 10 10 8 8 8 8]
。[10 10 10 10 10 10 10 10]
。每对队伍(允许参加比赛)可以进行1或2场比赛。我们已经完成了。另一个想法,可能会有所帮助。在均匀分布的匹配中,允许对之间的游戏数量可以相差不超过1.我们可以将其视为:所有对都玩N
个游戏,并且几个对玩N+1
个游戏。我开始时所有对在我的解决方案中玩1场比赛。并且它给出了初始总和,必须通过选择这几对来玩一个额外的游戏来纠正。因此,一般问题可能重新拟定如下:如何将几个问题放入零对称矩阵的允许位置,以使行的总和等于给定的向量?