2012-10-10 58 views
1

在R中,如何产生一个组的所有排列,但是在这个组中有一些重复的元素。重复排列

实施例:

A = {1,1,2,2,3} 

溶液:

1,1,2,2,3 
1,1,2,3,2 
1,1,3,2,2 
1,2,1,2,3 
1,2,2,1,3 
1,2,2,3,1 
. 
. 

回答

5

library(gtools) 

x <- c(1,1,2,2,3) 

permutations(5, 5, x, set = FALSE) 
3

只需使用combinat包:使用gtools

A = c(1,1,2,2,3) 
library(combinat) 
permn(A) 
1

使用permute包:

x <- c(1,1,2,2,3) 
require(permute) 
allPerms(x, observed = TRUE) 
1

如果你想做到这一点的内置R:

permute <- function(vec,n=length(vec)) { 
    permute.index <- sample.int(length(vec),n) 
    return(vec[permute.index]) 
} 

permute(A) 
1

我已经做组合和排列广泛的研究。我发现的这个结果写在一本名为Junction(一种计数组合和排列的艺术)上。查看我的网站,然后登录到https://sites.google.com/site/junctionslpresentation/home

我也有你的问题的解决方案。订购多个对象排列。这种多对象排列我叫它(MSNO的CON),这意味着多种对象相同数量的组合订单编号。

要查看订货,然后去现场https://sites.google.com/site/junctionslpresentation/proof-for-advance-permutation 在底部的这个方法本网站附有一些word文档,你需要的解决方案写在word文档12证明(MSNO的CON)和13证明(MSNO的CON的converse)。书面事宜。