选择所有可能的组合来配对R

时间:2018-01-18 12:36:12

标签: r combinatorics

我有一个很难用数学方法掌握的问题。所以希望我可以通过这个简化的例子了解我想要做的事情:

假设我必须使用长度为n = 3的向量。

a <- 1:3
b <- 1:3

我想知道我多久能够在没有替换的情况下绘制a和b元素的三个元素并将它们配对,其中顺序无关紧要,并获得一个唯一的集合。一对(1 2)与(2 1)不同,但我不想有这样的东西

1 2

2 1

1 3,

因为我不希望任何元素(按列)重复。在该示例中,1然而在第一列中出现两次。

两组有效的配对将是

1 1

2 2

3 3

1 3

2 2

3 1。

我已经发现它不是n * n选择k,这将是84,就像在无替换问题的无序采样中一样。

最终目的是计算长度为n = 20的两个向量的20个组合的唯一对数。

1 个答案:

答案 0 :(得分:2)

如果你从两个向量1,2更简单的东西开始,则组合为2! = 2,因为1可以与任何1,2(2个选项)匹配, 2肯定会得到剩余的(0选择),如

1 1 | 1 2
2 2 | 2 1

如果您考虑两个向量1,2,3,则组合为3! = 3*2 = 6,因为1可以与任何1,2,3(3个选项)匹配,然后2可以匹配剩下的2个数字中的任何一个(其中2个选项)然后3肯定会得到剩余的数字(0个选项),如:

1 1 | 1 1 | 1 2 | 1 2 | 1 3 | 1 3
2 2 | 2 3 | 2 1 | 2 3 | 2 2 | 2 1
3 3 | 3 2 | 3 3 | 3 1 | 3 1 | 3 2 

因此对于1,2,3,...,20的两个向量,你将获得20个!选项。