0

我需要计算一个数字序列(类似于数独)来匹配球队互相比赛。

我需要为 8 个和 9 个团队创建一个矩阵,但无法弄清楚公式。我不得不相信这真的很简单,但我不知道要搜索什么才能找到它。

这是 7 个团队的工作版本:

团队 |1 2 3 4 5 6 7
====================
第 1 周 | 7 6 5 4 3 2第 2
周 | 7 5 6 3 4 1
周 3 | 6 5 7 2 1 4第 4
周 | 5 6 7 1 2 3
第 5 周 | 4 3 2 1 7 6第 6
周 | 3 4 1 2 7 5
第 7 周 | 2 1 4 3 6 5  

所以第一周,第 1 队不参加比赛(没有可用的合作伙伴),第 2 队参加第 7 队,第 3 队参加第 6 队,等等。第 2 周,第 1 队参加第 7 队,等等。

任何一支球队都不得与另一支球队比赛。活动持续的时间与我们的队伍一样多,因此 8 支队伍将进行 8 周的比赛。

每支球队都应该和另一支球队交手一次,而且只打一次。他们不能自己玩(因此每行都有空白条目。

请注意,右上角的三角形是左下角三角形的镜像,但这仍然不能帮助我确定公式。

我的猜测是,如果我花了足够多的时间,我就能弄清楚这个公式。但是由于这必须由各个年龄段的人完成几百万次,我猜这是一个众所周知的算法,我只需要找到知道这个名字的人(这样我就可以查一下)或者可以告诉我它是什么,所以我可以为需要它的朋友创建它。

谢谢!

4

1 回答 1

0

迄今为止最好的答案来自 Dennis Meng(我无法发表评论,所以我必须使用答案)。该链接向我指出了一个答案有效的问题。我还没有算法,但该方法运行得很好。我有我的行和列。它没有像示例那样为我提供“镜像”图像。但它确实让我每周都有一个独特的团队。我希望这就足够了。

我只是使用 excel 来布置它,因为这比试图找出逻辑、编写代码并获得良好的格式化结果要快 - 特别是因为我似乎只需要这样做一次。

但如果事实证明我需要再做一次,我会写一个简单的应用程序并在这里发布。

当然,如果我能得到生成上述矩阵的例程,那就太好了……

当然,这也引出了另一个问题。如何将丹尼斯的评论标记为答案????他值得称赞(除非有人插话镜像解决方案......)

哦,好吧,谢谢丹尼斯!

于 2013-09-27T06:48:19.760 回答