【发布时间】:2020-11-06 22:01:12
【问题描述】:
我正在尝试为个人项目解决这个算法问题。
- 本次比赛共有 8 名选手参加。
- 他们玩 2vs2
- 同时进行两场比赛(这样所有 8 名玩家都在比赛)
- 每位玩家必须与所有其他玩家(在同一支球队)打 7 场比赛
- 在比赛结束时,每位选手打了 7 场比赛。
- 锦标赛共由 14 场比赛组成
- 比赛的排列不计入新锦标赛。 (即比赛被定义为一组比赛)
这是一个包含玩家 A、B、C、D、E、F、G、H 的锦标赛示例:
Match 1 : A, B VS C, D. Score = ____ : ____
Match 2 : E, F VS H, G. Score = ____ : ____
Match 3 : C, A VS B, D. Score = ____ : ____
Match 4 : E, G VS H, F. Score = ____ : ____
Match 5 : A, D VS C, B. Score = ____ : ____
Match 6 : H, E VS F, G. Score = ____ : ____
Match 7 : E, A VS B, F. Score = ____ : ____
Match 8 : C, G VS H, D. Score = ____ : ____
Match 9 : A, F VS E, B. Score = ____ : ____
Match 10 : H, C VS D, G. Score = ____ : ____
Match 11 : A, G VS H, B. Score = ____ : ____
Match 12 : C, E VS D, F. Score = ____ : ____
Match 13 : H, A VS B, G. Score = ____ : ____
Match 14 : C, F VS E, D. Score = ____ : ____
注意Match i和Match i+1同时播放if i%2==1
问题:
可能有多少种不同的锦标赛?这些是哪些锦标赛?
我尝试了一种蛮力方法,但它太慢了。有没有更好的算法?
编辑:
欢迎使用代码。特别是python
【问题讨论】:
-
您尝试的内容似乎符合称为 Shomate 运动锦标赛的重复桥牌个人锦标赛的要求。 en.wikipedia.org/wiki/…
-
不受约束,有
(7!)^7不同的锦标赛。因此,有了这些限制,它就会少一些。
标签: algorithm performance combinatorics