R语言排列组合计算

Heaven Zone | 2018-06-10  |  R / 排列组合

R语言的排列组合计算。

列出排列数

gtools::permutations(5, 2)
##       [,1] [,2]
##  [1,]    1    2
##  [2,]    1    3
##  [3,]    1    4
##  [4,]    1    5
##  [5,]    2    1
##  [6,]    2    3
##  [7,]    2    4
##  [8,]    2    5
##  [9,]    3    1
## [10,]    3    2
## [11,]    3    4
## [12,]    3    5
## [13,]    4    1
## [14,]    4    2
## [15,]    4    3
## [16,]    4    5
## [17,]    5    1
## [18,]    5    2
## [19,]    5    3
## [20,]    5    4

列出组合数

gtools::combinations(5, 2)
##       [,1] [,2]
##  [1,]    1    2
##  [2,]    1    3
##  [3,]    1    4
##  [4,]    1    5
##  [5,]    2    3
##  [6,]    2    4
##  [7,]    2    5
##  [8,]    3    4
##  [9,]    3    5
## [10,]    4    5
t(combn(c("a", "b","c"), 2))
##      [,1] [,2]
## [1,] "a"  "b" 
## [2,] "a"  "c" 
## [3,] "b"  "c"

计算出组合数

choose(5,2)
## [1] 10

计算出排列数

hg_p <- function(n, r) {
  choose(n,r)*factorial(r)
}
hg_p(5,2)
## [1] 20
combn(c("a", "b","c"), 2)
##      [,1] [,2] [,3]
## [1,] "a"  "a"  "b" 
## [2,] "b"  "c"  "c"

计算阶乘

factorial(5)
## [1] 120
1*2*3*4*5
## [1] 120

求余数

9%%4
## [1] 1

求整数商

9%/%4
## [1] 2