我正在寻找一种算法,该算法将使双轮巡回锦标赛中的8个玩家配对,以使任何玩家都不能连续两次在同一边玩游戏,也就是说,每个玩家在一个回合中玩 home 下一轮离开,反之亦然。
循环赛的八名选手必须进行七轮比赛,每场比赛有四个固定装置,以便每个选手与其他选手对抗。因此,对于双循环赛,每场比赛将以主场和远离,与其他每位玩家进行对抗,导致14轮比赛各有4项比赛。
我使用以下代码生成了未分类的原始灯具集合,这些灯具可以实现均衡的 home-away 分布:
for (int x = 1; x <= 8; x++)
{
for (int y = 8; y > x; y--)
{
PairThese(x, y);
}
}
PairThese()方法创建一个具有x的玩家对战y的固定装置,并创建另一个具有y的玩家对x的住宅的固定装置,以完成双循环。
像前面提到的那样,问题是如何布置固定装置,以使每个玩家始终可以在一个回合中像主场作战,而在下一个回合中则总是走远,反之亦然