Las permutaciones se diferencian de las combinaciones ya que estas son agrupaciones de objetos donde el orden no importa, mientras que en las permutaciones si importa el orden de los objetos.
En R las funciones combinations y permutations se utilizan de la siguiente manera:
combinations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
permutations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
Siendo: n - el tamaño del vector base o fuente. r - el tamaño del vector resultante o objetivo. v - el vector utilizado como recurso. set - es un indicador logico que permite eliminar los duplicados que existan en el vector base/fuente. repeats.allowed - indicador logico que permite la construccion de vectores con valores duplicados.
(library(gtools))
## [1] "gtools" "stats" "graphics" "grDevices" "utils" "datasets"
## [7] "methods" "base"
combinations(3,3,letters[1:3])
## [,1] [,2] [,3]
## [1,] "a" "b" "c"
combinations(3,3,letters[1:3],repeats=TRUE)
## [,1] [,2] [,3]
## [1,] "a" "a" "a"
## [2,] "a" "a" "b"
## [3,] "a" "a" "c"
## [4,] "a" "b" "b"
## [5,] "a" "b" "c"
## [6,] "a" "c" "c"
## [7,] "b" "b" "b"
## [8,] "b" "b" "c"
## [9,] "b" "c" "c"
## [10,] "c" "c" "c"
nrow(permutations(14, 4, repeats.allowed = TRUE))
## [1] 38416
Permutaciones sin repetición:
nrow(permutations(14, 4, repeats.allowed = FALSE))
## [1] 24024
combinations(3,3,letters[1:3], repeats.allowed = TRUE)
## [,1] [,2] [,3]
## [1,] "a" "a" "a"
## [2,] "a" "a" "b"
## [3,] "a" "a" "c"
## [4,] "a" "b" "b"
## [5,] "a" "b" "c"
## [6,] "a" "c" "c"
## [7,] "b" "b" "b"
## [8,] "b" "b" "c"
## [9,] "b" "c" "c"
## [10,] "c" "c" "c"
Combinaciones sin repetición:
combinations(3,3,letters[1:3], repeats.allowed = FALSE)
## [,1] [,2] [,3]
## [1,] "a" "b" "c"
nrow(permutations(30, 2, repeats.allowed = FALSE))
## [1] 870
Combinaciones sin repetición:
nrow(combinations(30, 2, repeats.allowed = FALSE))
## [1] 435
prob_a_b = function(prob_b_a, prob_a, prob_b){
return(prob_b_a*prob_a/prob_b)
}