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
.
.
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
.
.
gtools
パッケージを使用して、
library(gtools)
x <- c(1,1,2,2,3)
permutations(5, 5, x, set = FALSE)
combinat
パッケージを使用するだけです:
A = c(1,1,2,2,3)
library(combinat)
permn(A)
permute
パッケージの使用:
x <- c(1,1,2,2,3)
require(permute)
allPerms(x, observed = TRUE)
組み込みのRでそれを実行したい場合:
permute <- function(vec,n=length(vec)) {
permute.index <- sample.int(length(vec),n)
return(vec[permute.index])
}
permute(A)
私は組み合わせと順列について広範な研究を行ってきました。私が見つけたこの結果は、ジャンクションとして知られている本に書かれています (組み合わせと順列を数える技術。私のサイトを表示するには、https://sites.google.com/site/junctionslpresentation/homeにログオンしてください)。
あなたの質問に対する解決策もあります。複数のオブジェクトの順列を注文することもわかりました。この複数のオブジェクトの順列を (MSNO の CON) と呼びます。これは、複数の同数のオブジェクトの組み合わせ順序番号を意味します。
この注文方法を表示するには、このサイトの下部にあるサイトhttps://sites.google.com/site/junctionslpresentation/proof-for-advance-permutation にアクセスしてください。Word 文書をいくつか添付しました。必要なソリューションは、ワード文書 12 Proof (CON of MSNO) および 13 Proof (Converse of MSNO) に記載されています。記載事項の正しい見方については、このWord文書をダウンロードしてください。