La diferencia entre las permutaciones y las combinaciones, es que la combinación se puede ver como la selección de elementos de un conjunto en las que el orden no importa, y la permutación como las formas de organizar un conjunto de elementos en un orden secuencial, en el cual si importa el orden, es decir, en las permutaciones importa el orden, en las combinaciones no.
Las permutaciones y las combinaciones poseen ecuaciones que permiten determinar el número de combinaciones o permutaciones posibles con un conjunto de elementos especificos, estas además, se dividen en dos, con repetición y sin repetición, estas son:
Permutación sin repetición: \(P(n,r) = \frac{n!}{(n-r)!}\)
Permutación con repetición: \(P(n,r) = n^{r}\)
Combinación sin repetición: \(C(n,r) = \frac{n!}{r!(n-r)!}\)
Combinación con repetición: \(C(n+r-1,r) = \frac{(n+r-1)!}{r!(n-r)!}\)
RStudio es un software que dentro de dentro de las funcionalidades que tiene, posee unas que permiten calcular las combinaciones y permutaciones de un conjunto dado, o uno por defecto desde 1 hasta un “n” dado, estas dos funcionalidades reciben 4 parámetros, estos son:
Para contrastar el uso de estas funcionalidades y las fórmulas antes descritas, se harán cálculos de permutaciones y combinaciones con “n” y “r” específicos y se compararán los resultados.
Sin repetición:
p_nr = permutations(n=12, r=3, v=1:12, set=T, repeats.allowed=F)
p_nr = nrow(p_nr)
p_nr
## [1] 1320
p_nr = factorial(12) / factorial(12-3)
p_nr
## [1] 1320
Con repetición:
p_r = permutations(n=12, r=3, v=1:12, set=T, repeats.allowed=T)
p_r = nrow(p_r)
p_r
## [1] 1728
p_r = 12^3
p_r
## [1] 1728
Sin repetición:
l = c("a","b","c","d")
c_nr = combinations(n=4, r=3, l, set=T, repeats.allowed=F)
c_nr
## [,1] [,2] [,3]
## [1,] "a" "b" "c"
## [2,] "a" "b" "d"
## [3,] "a" "c" "d"
## [4,] "b" "c" "d"
c_nr = factorial(4) / (factorial(3)*factorial(4-3))
c_nr
## [1] 4
Con repetición:
c_r = combinations(n=4, r=3, l, set=T, repeats.allowed=T)
c_r
## [,1] [,2] [,3]
## [1,] "a" "a" "a"
## [2,] "a" "a" "b"
## [3,] "a" "a" "c"
## [4,] "a" "a" "d"
## [5,] "a" "b" "b"
## [6,] "a" "b" "c"
## [7,] "a" "b" "d"
## [8,] "a" "c" "c"
## [9,] "a" "c" "d"
## [10,] "a" "d" "d"
## [11,] "b" "b" "b"
## [12,] "b" "b" "c"
## [13,] "b" "b" "d"
## [14,] "b" "c" "c"
## [15,] "b" "c" "d"
## [16,] "b" "d" "d"
## [17,] "c" "c" "c"
## [18,] "c" "c" "d"
## [19,] "c" "d" "d"
## [20,] "d" "d" "d"
c_r = factorial(4+3-1) / (factorial(3)*factorial(4-1))
c_r
## [1] 20
c_nr = factorial(34) / (factorial(5)*factorial(34-5))
c_nr
## [1] 278256
p_nr = factorial(34) / factorial(34-5)
p_nr
## [1] 33390720
Una bencinera tiene 4 funcionarios que deben limpiar el parabrisas de cada cliente que es atendido. Janet da servicio al 20 % de los clientes y no limpia 1 de cada 20 parabrisas; Tomás da servicio al 60 % de los clientes y no limpia 1 de cada 10 parabrisas; Georgina da servicio al 15 % de los clientes y no limpia 1 de cada 10 parabrisas; Pedro da servicio al 5 % de los clientes y no limpia 1 de cada 20 parabrisas
Esta formula trabaja con k particiones que pueda presentar el problema a tratar, en este caso por ejemplo, podemos resolver el problema con k = 4, ya que existen 4 funcionarios que pueden atender a los clientes.
prob_cp = 0.20 * 0.05 + 0.6 * 0.10 + 0.15 * 0.10 + 0.05 * 0.05
prob_P = 0.05 * 0.05
Pedro = prob_P / prob_cp
Pedro
## [1] 0.02857143
prob_J = 0.20 * 0.05
Janet = prob_J / prob_cp
Janet
## [1] 0.1142857
prob_G = 0.15 * 0.10
Georgina = prob_G / prob_cp
Georgina
## [1] 0.1714286
J_o_G = Janet + Georgina
J_o_G
## [1] 0.2857143
prob_T = 0.60 * 0.10
Tomas = prob_T / prob_cp
Atendido_p = Tomas + Janet + Georgina + Pedro
Atendido_p
## [1] 1
De un grupo de 20 personas se quiere saber la opinión de 2 personas (seleccionadas al azar) acerca del apruebo o rechazo de la nueva constitución. Si se sabe que 12 personas aprueban y 8 rechazan ¿cuál es la probabilidad de que las dos personas seleccionadas rechacen?
c = c("A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "R", "R", "R", "R", "R", "R", "R", "R")
r_a = combinations(n=20, r=2, c, set=F, repeats.allowed=FALSE)
nrow(r_a)
## [1] 190
casos = as.data.frame((r_a), row.names = NULL, make.names=TRUE)
colnames(casos) = c("Persona_1", "Persona_2")
names(casos) = (make.names(names(casos)))
casos %>%
group_by(across(names(casos))) %>%
summarise(Casos = n(), .groups=NULL)
## # A tibble: 3 × 3
## # Groups: Persona_1 [2]
## Persona_1 Persona_2 Casos
## <chr> <chr> <int>
## 1 A A 66
## 2 A R 96
## 3 R R 28
pro_rr = 28/190
pro_rr
## [1] 0.1473684
Dado P(A) = 0,50, P(B) = 0,30 y P(A ∩ B) = 0,15 calcule:
p_ab = 0.15 / 0.30
p_ab
## [1] 0.5
p_ab_c = (0.5 * (1-0.30)) / (1- 0.30)
p_ab_c
## [1] 0.5
p_ba = 0.15 / 0.5
p_ba
## [1] 0.3
p_ba_c = ((1-0.5) * 0.3) / (1-0.5)
p_ba_c
## [1] 0.3