Permutaciones y Combinaciones

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] 38416
  • Las 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] 435

Titanic