Se puede ver ambas como las distintas formas de ordenar un conjunto de objetos, pero se diferencian en que las permutaciones tienen en cuenta el orden de los mismos en cambio las combinaciones solo importa el contenido total mas no el orden.
Por suerte para nosotros R contiene dos funciones que nos permite hacer las operaciones anteriores a un set de elementos y estas son
permutations: enumera la cantidad de permutaciones disponibles.
combinations: enumera la cantidad de combinaciones disponibles.
en ambas funciones ocupan los mismos parametros que son los siguiente
permutations/combinations(n, r, v = 1:n, set=True, repeats.allowed = False )
donde:
n = tamaño del set/vector de entrada
r = tamaño del set/vector de salida
v = set/vector de entrada
set = operador que indica si remover los elementos repetidos del set/vector de entrada
repeats.allowed = operador que indica si remover los elementos repetidos del set/vector de salida
Calcule:
la cantidad de permutaciones posibles con n = 14 y r = 4 con y sin repetición
(library(gtools))
## [1] "gtools" "stats" "graphics" "grDevices" "utils" "datasets"
## [7] "methods" "base"
sizeSet = 14
r = 4
print(nrow(permutations(sizeSet, r, 1:sizeSet))) # sin repeticiones
## [1] 24024
print(nrow(permutations(sizeSet, r, 1:sizeSet,TRUE,TRUE))) #con repeticiones
## [1] 38416Las combinaciones de largo tres con las letras a, b y c con y sin repetición.
print(permutations(3, 3, letters[1:3])) # sin repeticiones
## [,1] [,2] [,3]
## [1,] "a" "b" "c"
## [2,] "a" "c" "b"
## [3,] "b" "a" "c"
## [4,] "b" "c" "a"
## [5,] "c" "a" "b"
## [6,] "c" "b" "a"
print(permutations(3, 3, letters[1:3],TRUE,TRUE)) #con repeticiones
## [,1] [,2] [,3]
## [1,] "a" "a" "a"
## [2,] "a" "a" "b"
## [3,] "a" "a" "c"
## [4,] "a" "b" "a"
## [5,] "a" "b" "b"
## [6,] "a" "b" "c"
## [7,] "a" "c" "a"
## [8,] "a" "c" "b"
## [9,] "a" "c" "c"
## [10,] "b" "a" "a"
## [11,] "b" "a" "b"
## [12,] "b" "a" "c"
## [13,] "b" "b" "a"
## [14,] "b" "b" "b"
## [15,] "b" "b" "c"
## [16,] "b" "c" "a"
## [17,] "b" "c" "b"
## [18,] "b" "c" "c"
## [19,] "c" "a" "a"
## [20,] "c" "a" "b"
## [21,] "c" "a" "c"
## [22,] "c" "b" "a"
## [23,] "c" "b" "b"
## [24,] "c" "b" "c"
## [25,] "c" "c" "a"
## [26,] "c" "c" "b"
## [27,] "c" "c" "c"La cantidad de permutaciones y combinaciones con n = 30 y r = 2 sin repeticion.
sizeSet = 30
r = 2
print(nrow(permutations(sizeSet, r, 1:sizeSet))) # permutaciones sin repeticion
## [1] 870
print(nrow(combinations(sizeSet, r, 1:sizeSet))) # combinaciones sin repeticion
## [1] 435Cree una función que calcule la probabilidad de A dado B, vea la ecuación 1
pAB = function(PA, PB, PBA){
return(PBA * PA/PB)
}