Ejercicio 2

Explique brevemente la diferencia entre permutación y combinación y exprese las ecuaciones para calcular permutaciones y combinaciones.

La permutación cuenta el número de formas en que se pueden ordenar objetos y se calcula usando la fórmula: \[ P_{n,r} = \frac{n!}{(n-r)!} \] La combinación cuenta el número de formas en que se pueden seleccionar objetos sin importar su orden y se calcula usando la fórmula: \[ C_{n,r} = \binom{n}{r} = \frac{n!}{r!(n-r)!} \] Ambos conceptos son importantes en la teoría de la probabilidad.

Ejercicio 3

Explique brevemente la diferencia entre permutación y combinación y exprese las ecuaciones para calcular permutaciones y combinaciones.

La función combinations() devuelve todas las combinaciones posibles de tamaño r de un conjunto de n elementos, lo que significa que no se tiene en cuenta el orden en que se seleccionan los elementos. Por otro lado, la función permutations() devuelve todas las permutaciones posibles de tamaño r de un conjunto de n elementos, lo que significa que sí se tiene en cuenta el orden en que se seleccionan los elementos.

Se utilizan de la siguiente forma:

combinations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)

permutations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)

Los parámetros de ambas funciones son:

  • n: Tamaño del vector de origen.
  • r: Tamaño del vector objetivo.
  • v: Vector origen. Por defecto, es 1:n.
  • set: Un indicador lógico que indica si los duplicados deben eliminarse del vector de origen v. Por defecto, es TRUE.
  • repeats.allowed: Un indicador lógico que indica si los vectores construidos pueden incluir valores duplicados. Por defecto, es FALSE.

Ejercicio 4

a) La cantidad de permutaciones posibles con n = 11 y r = 3 con y sin repetición.

\[ \begin{aligned} P_{11,3} = \frac{11!}{(11-3)!} = 11\times10\times9 = 990 \end{aligned} \]

library(gtools)
perm_sin_rep = permutations(n = 11, r = 3, repeats.allowed = FALSE)
cat(sprintf("La cantidad de permutaciones posibles sin repetición es: %d\n", nrow(perm_sin_rep)))
## La cantidad de permutaciones posibles sin repetición es: 990

\[ \begin{aligned} n^r = 11^3 = 1331 \end{aligned} \]

perm_con_rep = permutations(n = 11, r = 3, repeats.allowed = TRUE)
cat(sprintf("La cantidad de permutaciones posibles con repetición es: %d\n", nrow(perm_con_rep)))
## La cantidad de permutaciones posibles con repetición es: 1331
b) Las combinaciones de largo tres con las letras a, b, c, d y e con y sin repetición.

\[ \begin{aligned} \binom{5}{3} &= \frac{5!}{3!(5-3)!} = 10\\ \end{aligned} \]

combinaciones_sin_rep = combinations(
  n = 5,
  r = 3,
  v = c("a", "b", "c", "d", "e"),
  repeats.allowed = FALSE
)
n_comb_sin_rep = nrow(combinaciones_sin_rep)
cat("Número de combinaciones sin repetición: ", n_comb_sin_rep, "\n")
## Número de combinaciones sin repetición:  10

\[ \begin{aligned} \binom{5+3-1}{3} = \binom{7}{3} = 35 \end{aligned} \]

combinaciones_con_rep = combinations(
  n = 5,
  r = 3,
  v = c("a", "b", "c", "d", "e"),
  repeats.allowed = TRUE
)
n_comb_con_rep = nrow(combinaciones_con_rep)
cat("Número de combinaciones con repetición: ", n_comb_con_rep, "\n")
## Número de combinaciones con repetición:  35
c) La cantidad de permutaciones y combinaciones con n = 39 y r = 25 sin repetición

Al utilizar la función permutation, el número de permutaciones posibles es demasiado grande, por lo que genera problemas con la memoria y no entrega un resultado. Por ello se opta por la alternativa directa: factorial(n)/factorial(n - r)

\[\begin{aligned} P(39,25) &= 2.339789160859056 \times 10^{35} \end{aligned}\]
# Variables
n = 39
r = 25

perm_sin_rep = factorial(n) / factorial(n - r)
cat("Número de permutaciones sin repetición: ", perm_sin_rep, "\n")
## Número de permutaciones sin repetición:  2.339789e+35
\[\begin{aligned} C(39,25) &= 15,084,504,396 \end{aligned}\]
comb_sin_rep = factorial(n) / (factorial(n - r) * factorial(r))
cat("Número de combinaciones sin repetición: ", comb_sin_rep, "\n")
## Número de combinaciones sin repetición:  15084504396

Ejercicio 5

Considere un problema de una vendedora viajera que debe recorrer 50 ciudades y volver al origen sin pasar dos veces por la misma ciudad. Considerando que solo existe una ruta óptima, si se selecciona una ruta al azar
a) ¿Cuál es la probabilidad de que sea la ruta óptima?

La cantidad de posibles rutas distintas que la vendedora puede tomar es de 49! (49 factorial), ya que tiene que visitar 50 ciudades pero no puede visitar dos veces la misma ciudad. Todas las rutas posibles tienen la misma probabilidad de ser elegidas al azar, por lo que la probabilidad de que una ruta elegida al azar sea la ruta óptima es de:

\[ \frac{1}{49!} \approx 1.64397470831658 \times 10^{-63} \]

p_optima = 1 / factorial(49)

paste0("La probabilidad de que sea la ruta óptima es ", p_optima)
## [1] "La probabilidad de que sea la ruta óptima es 1.64397470831658e-63"
b) Si se selecciona una ruta al azar que es distinta a la anterior ¿cuál es la probabilidad de que sea la ruta óptima?

Si la ruta anteriormente seleccionada fue la óptima, entonces la probabilidad de que la ruta actual seleccionada al azar sea la óptima será cero, ya que solo hay una ruta óptima posible en un recorrido de 50 ciudades sin pasar dos veces por la misma ciudad, y esa ruta ya ha sido seleccionada.

En cambio, si consideramos que la ruta anteriormente seleccionada no fue la óptima, entonces la probabilidad de que la ruta actual seleccionada al azar sea la óptima será la misma que la probabilidad de que una ruta seleccionada al azar sea la ruta óptima, que es de \(\frac{1}{49!}\), ya que todas las rutas restantes tienen la misma probabilidad de ser la óptima.

p_optima = 1/factorial(49)

paste0("Si la ruta anteriormente seleccionada no fue la óptima, la probabilidad de que sea la ruta óptima es ", p_optima)
## [1] "Si la ruta anteriormente seleccionada no fue la óptima, la probabilidad de que sea la ruta óptima es 1.64397470831658e-63"

Ejercicio 6

a) Exprese la ecuación con la que se puede resolver el problema.

\[ P(A_{i}|B) = \frac{P(B|A_{i}) \cdot P(A_{i})}{\sum_{j=1}^{k} P(B|A_{j}) \cdot P(A_{j})} \]

b) ¿Cuál es la probabilidad de que haya sido atendido por Pedro?

\[ P(P|L) = \frac{P(L|P)\cdot P(P)}{P(L|J)\cdot P(J)+P(L|T)\cdot P(T)+P(L|G)\cdot P(G)+P(L|P)\cdot P(P)+P(L|M)\cdot P(M)} \]

# Probabilidades de cada empleado
P_janet = ((0.95 * 0.10) / (0.95 * 0.10 + 0.90 * 0.60 + 0.90 * 0.15 + 0.95 * 0.05 + 0.40 * 0.10))
P_georgina = ((0.90 * 0.15) / (0.95 * 0.10 + 0.90 * 0.60 + 0.90 * 0.15 + 0.95 * 0.05 + 0.40 * 0.10))
P_tomas = ((0.90 * 0.60) / (0.95 * 0.10 + 0.90 * 0.60 + 0.90 * 0.15 + 0.95 * 0.05 + 0.40 * 0.10))
P_pedro = ((0.95 * 0.05) / (0.95 * 0.10 + 0.90 * 0.60 + 0.90 * 0.15 + 0.95 * 0.05 + 0.40 * 0.10))
P_marcela = ((0.10 * 0.40) / (0.95 * 0.10 + 0.90 * 0.60 + 0.90 * 0.15 + 0.95 * 0.05 + 0.40 * 0.10))

# Probabilidad porcentual de Pedro
r_p = paste0(round((P_pedro * 100), 2), "%")
paste0("La probabilidad de que haya sido atendido por Pedro es de ", r_p)
## [1] "La probabilidad de que haya sido atendido por Pedro es de 5.54%"
c) ¿Cuál es la probabilidad de que haya sido atendido por Janet o Georgina?

\[ P(J \cup G|L) = \frac{P(L|J) \cdot P(J) + P(L|G) \cdot P(G)}{P(L|J) \cdot P(J) + P(L|T) \cdot P(T) + P(L|G) \cdot P(G) + P(L|P) \cdot P(P) + P(L|M) \cdot P(M)} \]

# Probabilidad porcentual de Janet o Georgina
r_jg = paste0(round((P_janet + P_georgina) * 100, 2), "%")
paste0("La probabilidad de que haya sido atendido por Janet o Georgina es de ", r_jg)
## [1] "La probabilidad de que haya sido atendido por Janet o Georgina es de 26.82%"
d) Calcule la probabilidad de que haya sido atendido por Janet, Georgina, Tomás, Pedro o Marcela. ¿Qué se puede observar?

La suma de las probabilidades condicionales de los empleados da como resultado 1, lo que indica que la probabilidad total de que el cliente haya sido atendido por alguno de ellos es del 100%. \[ P(J \cup G \cup T \cup P \cup M | L) = \frac{P(L|J) \cdot P(J) + P(L|G) \cdot P(G) + P(L|T) \cdot P(T) + P(L|P) \cdot P(P) + P(L|M) \cdot P(M)}{P(L|J)\cdot P(J)+P(L|T)\cdot P(T)+P(L|G)\cdot P(G)+P(L|P)\cdot P(P)+P(L|M)\cdot P(M)} \]

# Probabilidad porcentual de que fuera alguno de los empleados
r_todos = paste0(round((P_janet + P_georgina + P_tomas + P_pedro + P_marcela) * 100, 2), "%")
paste0("La probabilidad de que haya sido atendido por alguno de los empleados es del ", r_todos)
## [1] "La probabilidad de que haya sido atendido por alguno de los empleados es del 100%"

Ejercicio 7

De un grupo de 40 personas se quiere saber la opinión de 3 personas (seleccionadas al azar) acerca del apruebo o rechazo de la nueva constitución. Si se sabe que 22 personas aprueban y 18 rechazan ¿cuál es la probabilidad de que las dos personas seleccionadas rechacen?

Para este problema, se utilizó la fórmula de la distribución hipergeométrica para calcular la probabilidad de obtener 2 rechazos en una muestra de tamaño 3 sin reemplazo de una población de tamaño 40 que se divide en 22 personas que aprueban y 18 personas que rechazan. El resultado obtenido es 0.4208, lo que indica que hay una probabilidad del 34.1% de que las dos personas seleccionadas rechacen la nueva constitución.

\[P(X=x) = \frac{{K \choose x}{N-K \choose n-x}}{{N \choose n}}\] \[p(2) =\frac{\binom{18}{2}\binom{40-18}{3-2}}{\binom{40}{3}} = 0.3406883\]

# Variables de la distribución hipergeométrica
K = 18 # Casos favorables en N
x = 2  # Casos favorables
N = 40 # Casos totales
n = 3  # Experimentos

# funcion coeficiente binomial
c_binomial = function(n, k) {
  res = factorial(n)/(factorial(k)*factorial(n-k))
  return(res)
}

# Calculo distribucion hipergometrica
resultado = (c_binomial(K, x) * c_binomial(N-K, n-x)) / c_binomial(N, n)
resultado
## [1] 0.3406883
r_prob = paste0(round(resultado * 100, 1), "%")
cat("La probabilidad de que 2 personas seleccionadas rechacen es", r_prob, "\n")
## La probabilidad de que 2 personas seleccionadas rechacen es 34.1%
# Comprobacion utilizando dhyper
print(dhyper(x=x, m=K, n=(N-K), k=n))
## [1] 0.3406883

Referencias