R語言學習筆記—組合數


組合數:從m個不同元素中取出n(n≤m)個元素的所有組合的個數,叫做從m個不同元素中取出n個元素的組合數。

代碼:

str_comb <- function(vector){
  n <- length(vector) 
  num=0  #保留所有組合的個數
  col=1 #用作循環疊加
  for (i in 1:n) {
    num=num+choose(n,i)
  } #計算組合個數
  comb_matrix <- matrix(,nrow = num,ncol = 1) #用矩陣保存組合結果
  for (j in 1:n) {
    comb_res <- combn(vector,j) #產生長度為j的組合
    m <- ncol(comb_res) #計算組合所在列數,即組合個數
    for (l in 1:m) {
      comb_matrix[col,1] <- paste(comb_res[,l],collapse = ',')#字符組合函數
      col=col+1
      if(col==num)break#當組合數量達到最終個數后,跳出循環
    }
  }
  return(comb_matrix)
}
a <- c('A','B','C','D')
str_comb(a)

運行結果:

> str_comb(a)  [,1] [1,] "A" [2,] "B" [3,] "C" [4,] "D" [5,] "A,B" [6,] "A,C" [7,] "A,D" [8,] "B,C" [9,] "B,D" [10,] "C,D" [11,] "A,B,C" [12,] "A,B,D" [13,] "A,C,D" [14,] "B,C,D" [15,] "A,B,C,D"



參考來源:https://www.cnblogs.com/rhongp/p/6383815.html


2018-04-30 22:51:32


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM