为3名参赛者/三人组进行循环赛?

时间:2014-09-30 16:43:00

标签: algorithm combinatorics

我参考Scheduling algorithm for a round-robin tournament?发言。

我需要将一群人配对(或三倍)成三人组,以便他们见面。例如,在一组9人中,第一次会议将是:[1,2,3],[4,5,6],[7,8,9]。接下来的会议将是[1,4,7],[2,5,8],[3,6,9]。当每个人都遇到其他人时,事情就会结束,我们需要尽量减少"轮次"。

我终于想到解决这个问题的方法。非常感谢能指出我正确方向的人:)

1 个答案:

答案 0 :(得分:0)

如果“每个人都遇到其他人”意味着所有对都出现在日程表中,那么这是Kirkman's schoolgirl problem的概括,当存在奇数个组时存在的最小轮数可解( Kirkman三重系统,由于Ray-Chaudhuri和Wilson)。社交高尔夫球手问题是对其他群体规模的推广,我希望在这个名称下研究偶数群体的情况。

在“看似不太可能”的事件中,“每个人都遇到了其他人”意味着已经使用了所有可能的组,然后你想使用Baranyai定理中的构造来找到超图因子(参见my previous answer on the topic表示Python实现)。