平衡游泳池与家庭游戏算法

时间:2012-05-14 06:15:37

标签: c# algorithm round-robin

我有一个使用平衡算法创建循环赛的算法,该算法可以为以下游戏创建四个游戏池。

1-2 Round 1
3-4 Round 1
1-3 Round 2
2-4 Round 2
1-4 Round 3
2-3 Round 3

我希望这些游戏能够尽可能地平衡主场比赛。从上面你可以看出1是游戏中的第一个团队,意味着客队,但是希望在游戏中平衡这一点,并使其有时成为主队。你可以在下面看到我改变了第2轮比赛,所以1可以打主场比赛,4可以打比赛。在确定游戏后,是否有一个简单的算法来实现这一目标?

1-2 Round 1
3-4 Round 1
3-1 Round 2
4-2 Round 2
1-4 Round 3
2-3 Round 3

1 个答案:

答案 0 :(得分:2)

对于这个简单的情况(你需要在不同的位置玩同一支球队之间没有重复的比赛),你可以为每一对计算:

X = (Team_Number_1 + Team_Number_2) % 2

并交换X = 0的对。假设较低数量的团队最初始终是该对中的第一个(并且您将该列表描述为这样),这将导致主场和客场比赛的最佳分配。