计算数字对序列的算法

时间:2013-09-27 00:17:53

标签: algorithm

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

我需要为8个和9个团队创建一个矩阵,但无法找出公式。我不得不相信这很简单,但我不知道该搜索什么来找到它。

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

team | 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周。

每支球队应该只参加另一支球队一次。他们不能自己玩(因此每行都是空白的。

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

我的猜测是,如果我花了足够的时间,我可以找出公式。但是,由于这已经被人们做了几百万次,我猜这是一个众所周知的算法,我只需要找一个知道这个名字的人(所以我可以查一下)或者可以告诉我它是什么,所以我可以为需要它的朋友创造这个。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

我只是使用excel来解决它,因为这比试图找出逻辑,编写代码和获得一个很好的格式化结果更快 - 特别是因为我似乎只需要做一次。

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

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

当然,这也引出了另一个问题。我怎样才能将丹尼斯的评论标记为答案????他值得赞扬(除非有人使用镜像解决方案......)。

哦,谢谢丹尼斯!