Ejercicios 2

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

La diferencia principal entre permutacion y combinacion es en la importancia del orden, es decir, en la permutacion el orden es importante, por ejemplo una permutacion de las muestras {a,b,c,d} seria {a,b} y otra totalmente distinta seria {b,a}, en la combinacion esto no pasa, ya que {a,b} y {b,a} son iguales. n = poblacion r = muestra Permutacion = n!/(n-r)! Combinacion = n!/(n-r)!*r!

3) Busque en la ayuda de R las funciones combinations y permutations y explique brevemente cómo funcionan.

las funciones trabajas con vectores de elementos los cuales se les puedes asignar flags para indicar si la permutacion o combinacion es con o sin repeticion y las funciones es cuestion retornan matrices con los resultados.

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

print('Numero de permutaciones sin repeticion: ')
## [1] "Numero de permutaciones sin repeticion: "
nrow(permutations(11, 3, 1:11))
## [1] 990
print('Numero de permutaciones con repeticion: ' )
## [1] "Numero de permutaciones con repeticion: "
nrow(permutations(11, 3, 1:11, repeats.allowed = TRUE))
## [1] 1331

4.b) Las combinaciones de largo tres con las letras a, b, c, d y e con y sin repetición

print('Numero de combinaciones sin repeticion: ')
## [1] "Numero de combinaciones sin repeticion: "
nrow(combinations(5, 3, c('a','b','c','d','e')))
## [1] 10
print('Numero de combinaciones con repeticion: ')
## [1] "Numero de combinaciones con repeticion: "
nrow(combinations(5, 3, c('a','b','c','d','e'), repeats.allowed = TRUE))
## [1] 35

4.c) La cantidad de permutaciones y combinaciones con n = 39 y r = 25 sin repetición

combinacion <- function(n, r) {
  numerador <- factorial(n)
  denominador <- factorial(n-r)*factorial(r)
  return(numerador/denominador)
}

permutacion <- function(n, r) {
  numerador <- factorial(n)
  denominador <- factorial(n-r)
  return (numerador/denominador)
}

print("combinaciones: ")
## [1] "combinaciones: "
print(combinacion(n = 39, r =25))
## [1] 15084504396
print("Permutaciones: ")
## [1] "Permutaciones: "
print(permutacion(n = 39, r =25))
## [1] 2.339789e+35

se devio crear una funcion de combinacion y permuutacion debido a que las funciones ya incluidas eran demaciado lentas y al intentar con numeros tan grandes se quedaban en un loop infinito.

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) (10 puntos) ¿cuál es la probabilidad de que sea la ruta óptima? primero tenemos que conocer los casos totales los cuales obtendremos con una permutacion y si dividiremos 1 entre ese numero para obtener la probabilidad

casos_totales <- permutacion(n = 50, r = 49)
posibilidad = 1/casos_totales
print(posibilidad)
## [1] 3.287949e-65

b) (10 puntos) Si se selecciona una ruta al azar que es distinta a la anterior ¿cuál es la probabilidad de que sea la ruta óptima?

asumiendo que la opcion anterior no vuelve al pool de selecciones entonces tenemos un casos_totales - 1 de posibilidades de que sea la correcta

casos_totales = casos_totales - 1
print(1/casos_totales)
## [1] 3.287949e-65

6) Una bencinera tiene 5 funcionarios que deben limpiar el parabrisas de cada cliente que es atendido. Janet da servicio al 10 % 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; Marcela da servicio al 10 % de los clientes y no limpia 3 de cada 5 parabrisas. Si un cliente envía una nota de agradecimiento porque su parabrisas quedó como nuevo

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

bueno resolvi el problema utilizando el teorema de bayes entonces apoyandome en un grafo de tipo arbol fui asignando los porcentajes necesarios para poder resolver los problemas en cada caso

prob_pedro_atendio = 0.05
prob_pedro_parabrisa = 0.95
prob_janet_atendio = 0.1
prob_janet_parabrisa = 0.95
prob_tomas_atendio = 0.6
prob_tomas_parabrisa = 0.9
prob_georgina_atendio = 0.15
prob_georgina_parabrisa = 0.9
prob_marcela_atendio = 0.1
prob_marcela_parabrisa = 0.4

prob_pedro_parabrisa_atendio = prob_pedro_atendio * prob_pedro_parabrisa
prob_janet_parabrisa_atendio = prob_janet_atendio * prob_janet_parabrisa
prob_georgina_parabrisa_atendio = prob_georgina_atendio * prob_georgina_parabrisa
prob_tomas_parabrisa_atendio = prob_tomas_atendio * prob_tomas_parabrisa
prob_marcela_parabrisa_atendio = prob_marcela_atendio * prob_marcela_parabrisa

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

apoyandonos en el teorema de bayes necesitamos la probabilidad de que pedro haya limpiado su parabrisa dado de que la atendio y lo dividimos por la probabilidad de los demas empleados.

pedro = prob_pedro_parabrisa_atendio/(prob_marcela_parabrisa_atendio + prob_tomas_parabrisa_atendio + prob_georgina_parabrisa_atendio + prob_janet_parabrisa_atendio + prob_pedro_parabrisa_atendio)
print(pedro)
## [1] 0.05539359

c) (5 puntos) ¿Cuál es la probabilidad de que haya sido atendido por Janet o Georgina?

janet_georgina = (prob_georgina_parabrisa + prob_janet_parabrisa_atendio)/(prob_marcela_parabrisa_atendio + prob_tomas_parabrisa_atendio + prob_georgina_parabrisa_atendio + prob_janet_parabrisa_atendio + prob_pedro_parabrisa_atendio)
print(janet_georgina)
## [1] 1.16035

d) (5 puntos) Calcule la probabilidad de que haya sido atendido por Janet, Georgina, Tomás, Pedro o Marcela. ¿Qué se puede observar?

marcela = prob_marcela_parabrisa_atendio/(prob_marcela_parabrisa_atendio + prob_tomas_parabrisa_atendio + prob_georgina_parabrisa_atendio + prob_janet_parabrisa_atendio + prob_pedro_parabrisa_atendio)

janet = prob_janet_parabrisa_atendio/(prob_marcela_parabrisa_atendio + prob_tomas_parabrisa_atendio + prob_georgina_parabrisa_atendio + prob_janet_parabrisa_atendio + prob_pedro_parabrisa_atendio)

georgina = prob_georgina_parabrisa_atendio/(prob_marcela_parabrisa_atendio + prob_tomas_parabrisa_atendio + prob_georgina_parabrisa_atendio + prob_janet_parabrisa_atendio + prob_pedro_parabrisa_atendio)

tomas = prob_tomas_parabrisa_atendio/(prob_marcela_parabrisa_atendio + prob_tomas_parabrisa_atendio + prob_georgina_parabrisa_atendio + prob_janet_parabrisa_atendio + prob_pedro_parabrisa_atendio)

print("pedro: ")
## [1] "pedro: "
print(pedro)
## [1] 0.05539359
print("georgina: ")
## [1] "georgina: "
print(georgina)
## [1] 0.1574344
print("janet: ")
## [1] "janet: "
print(janet)
## [1] 0.1107872
print("tomas: ")
## [1] "tomas: "
print(tomas)
## [1] 0.6297376
print("marcela: ")
## [1] "marcela: "
print(marcela)
## [1] 0.04664723
print(tomas + pedro + janet + marcela + georgina)
## [1] 1

bueno claramente se puede observar que de que tomas tiene mas probabilidades de haber sido el que recibio la nota de agradeciemiento y marcela la que menos, la suma de todas las probabilidades da 1 porque si el cliente mando la nota es porque alguien le limpio el parabrisa de los 5 empleados.

7) (10 puntos) 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 tres personas seleccionadas rechacen?