可以用X元素制作而不重复一对的对数?

时间:2017-11-17 19:16:25

标签: database math combinations permutation mathematical-optimization

我想用X个数据库对象组成对。

  • 对的顺序无关紧要。
  • 将在多轮比赛中进行。
  • 我不希望在后续轮次中重复对。

如果我有:

A
B
C
D

第一轮可能是:

AB
CD

第二轮可能是:

AD
CB

第三轮可能是:

AC
DB

并且没有其他可能性。

因此对于4个元素,我可以在我必须重复一对之前做3轮。

为任何数量的元素提供帮助的公式是什么?

相关How do I get the total number of unique pairs of a set in the database?

1 个答案:

答案 0 :(得分:0)

您可以使用round-robin tournament算法生成所有可能的对。您的示例显示了r-r算法:制作两行元素,修复第一行(A)并以循环方式旋转其他元素。

请注意,N个元素组成N*(N-1)/2对,生成所有这些元素需要(N-1)个轮次