Algorithm 具有n个玩家和m个参与者匹配的组的匹配算法
我有以下问题: 一组n名玩家想要玩一组比赛。每一场比赛都有m 参与者。我想找到一个游戏最少的时间表 每个玩家与其他玩家至少见面一次,最多一次 各种各样的对手 经过一些研究后,我发现“社交高尔夫问题”似乎是一个类似的问题,但我找不到一个我可以适应的解决方案,也不能提出自己的解决方案。伪代码(假设球员内部有标志): 从球员A开始;(假设球员A到F,每场比赛3名球员) 通过自上而下,我们可以消除各种可能性。从每个人扮演所有其他玩家开始(他们还没有玩过,因此,例如,B跳过C,因为B在ABC中与C一起玩)(3人一组)。我们可以编写一个函数来实现这一点(请参见顶部的psuedocode) 现在,如果你只算3人一组的话,几乎所有的玩家都互相玩过。到目前为止,这是5场比赛。删除我们已经计算过的游戏,导致Algorithm 具有n个玩家和m个参与者匹配的组的匹配算法,algorithm,combinatorics,schedule,Algorithm,Combinatorics,Schedule,我有以下问题: 一组n名玩家想要玩一组比赛。每一场比赛都有m 参与者。我想找到一个游戏最少的时间表 每个玩家与其他玩家至少见面一次,最多一次 各种各样的对手 经过一些研究后,我发现“社交高尔夫问题”似乎是一个类似的问题,但我找不到一个我可以适应的解决方案,也不能提出自己的解决方案。伪代码(假设球员内部有标志): 从球员A开始;(假设球员A到F,每场比赛3名球员) 通过自上而下,我们可以消除各种可能性。从每个人扮演所有其他玩家开始(他们还没有玩过,因此,例如,B跳过C,因为B在ABC中与C一起玩)
A F -missing
B F -missing
C F -missing
这里有什么共同点?他们都有F。这意味着F必须和名单上的每个人比赛,所以我们需要做的就是把F排在前面
我们现在可以做F A B,然后C F+任意随机游戏者。这是最少7场比赛
基本上,您可以反复运行伪代码,直到它连续两次返回false。当它连续两次返回false时,您知道所有标志都已设置。这可能不是一个完整的解决方案,但。。。考虑一个带有<代码> n>代码>节点的图表。与
m
玩家的比赛可以通过每轮将m-1
边放入图形中来表示。要求每个玩家至少与另一个玩家见面一次,这意味着您将在若干回合后进行一次对话
对于圆形(匹配)1,放置一组任意的m-1
边。对于下一轮,铺设当前未连接两个节点的m-1
边。重复此操作,直到图形完成
编辑:边缘需要连接,以确保只有
m
玩家与m-1
边缘匹配,这将使这一点更加困难。如果将每一轮放在完整图的行走中,则问题与查找完整图的最短行走相同。一个不同的问题可能是相关的,并提出了。我的问题是,假设每场比赛我有4名球员,我需要一种方法来创建比赛。如果我只是结合for循环,确保每个人都能看到每个人,我可能会有比我需要的更多的游戏。让我们假设我有6个玩家在玩一个3人游戏。我可以在小组内形成20个组合,但我可以在每个人都看到每个人之后创建一组7个匹配。示例:abc、def、cde、abf、dae、bde、cfX
A B C (save this game to a list of games, or increment a counter or something)
A D E
A F -missing (returned false so we did not save this)
B D E
B F -missing
C D E
C F -missing
D E F
A F -missing
B F -missing
C F -missing