1

Instale el paquete “gtools” con la sentencia: install.packages(′gtools′), incluya la librería “gtools” (library(gtools)).

#install.packages('gtool')
(library(gtools))
## [1] "gtools"    "stats"     "graphics"  "grDevices" "utils"     "datasets" 
## [7] "methods"   "base"

2

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

Las permutaciones es una manera de contabilizar combinaciones posibles en el que importa el orden y las combinatorias son las que no importa el orden pero si la existencia de algún elemento, por ejemplo AB y BA equivalen a lo mismo en combinación pero en permutación son distintos.

Permutaciones:

Combinaciones:

3

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

Las funciones combinations y permutations tienen la misma sintaxis para poder usarlas, estas son:

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

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

en donde:

4

Calcule:

  1. (2 puntos) La cantidad de permutaciones posibles con n = 11 y r = 3 con y sin repetición.
#Permutación sin repetición

perm = permutations(11,3, repeats.allowed = F)
nrow(perm)
## [1] 990
#Permutación con repetición

perm2 = permutations(11,3, repeats.allowed = T)
nrow(perm2)
## [1] 1331
  1. (2 puntos) Las combinaciones de largo tres con las letras a, b, c, d y e con y sin repetición.
#Comninatoria sin repetición

comb = combinations(5,3,v=c('a','b','c','d','e'))
nrow(comb)
## [1] 10
#Combinatoria con repetición

comb2 = combinations(5,3,v=c('a','b','c','d','e'), repeats.allowed = T)
nrow(comb2)
## [1] 35
  1. (2 puntos) La cantidad de permutaciones y combinaciones con n = 39 y r = 25 sin repetición.
#Permutación
#permc = permutations(39, 25)
#nrow(permc)

#Combinatoria
#combc = combinations(39,25)
#nrow(permc)

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

  1. (10 puntos) ¿cuál es la probabilidad de que sea la ruta óptima?

No se puede usar las funciones de permutación debido a que tienen limitaciones para entradas demasiado grandes debido a restricciones de memoria y tiempo de ejecución. Por lo anterior se debe hacer a fuerza bruta.

permutacion = 50*49*48*47*46*45*44*43*42*41*40*39*38*37*36*35*34*33*32*31*30*29*28*27*26*25*24*23*22*21*20*19*18*17*16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1

proba_optima = 1/permutacion
sprintf("%0.1f%%", proba_optima * 100)
## [1] "0.0%"

Se peude ver que la cantidad de posibles rutas es tan grande que la probabilidad de que se eliga de manera aleatoria la optima tiende a 0%.

  1. (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?
proba_optima2 = 1 / (permutacion - 1) 
sprintf("%0.1f%%", proba_optima * 100)
## [1] "0.0%"

El quitar una ruta posible aumentaría la posibilidad pero ya que siguen siendo tan grande las cantidades de posibles rutas es tecnicamente discriminable y la probabilidad sigue siendo de 0%.

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.

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

Para este problema se debe utilizar el teorema de bayes, ya que entrega la probabilida de cuando n eventos estan relacionados: P[An|B] = (P[B|Ai]P[Ai])/(Σ(i=1 a n)P[B|Ai]P[Ai].)

  1. ¿Cuál es la probabilidad de que haya sido atendido por Pedro? Si el cliente envia su nota de agradecimiento se debe calcular la probabilidad de que haya sido atendido por Pedro y que este le haya limpiado el parabrisas
(library(gtools))
## [1] "gtools"    "stats"     "graphics"  "grDevices" "utils"     "datasets" 
## [7] "methods"   "base"
#P(A) =Probabilidad de que haya sido antendido por Pedro = 0.05
#P(B|A) = Probabilidad de haya sido limpiado su parabrisas y sea atendido por Pedro = 0.95

prob_pedro = (0.05*0.95)/((0.4*0.1) + (0.05*0.95)+(0.9*0.15)+(0.9*0.6)+(0.95*0.1))
sprintf("%0.1f%%", prob_pedro * 100)
## [1] "5.5%"
  1. ¿Cuál es la probabilidad de que haya sido atendido por Janet o Georgina?
(library(gtools))
## [1] "gtools"    "stats"     "graphics"  "grDevices" "utils"     "datasets" 
## [7] "methods"   "base"
Prob_JanetGeorgina = ((0.9*0.15) + (0.95*0.1))/((0.4*0.1) + (0.05*0.95)+(0.9*0.15)+(0.9*0.6)+(0.95*0.1))
sprintf("%0.1f%%", Prob_JanetGeorgina * 100)
## [1] "26.8%"
  1. Calcule la probabilidad de que haya sido atendido por Janet, Georgina, Tomás,Pedro o Marcela. ¿Qué se puede observar? Se puede observar que por logica uno debe intuir que no hay manera que no haya sido atendido por ninguno, ya que en la bencinera hay 5 trabajadores y es imposible que haya sido atendido por otro y el teorema de bayes lo comprueba dando que hay un 100% de probabilidad de que haya sido atendido por alguno de ellos.
Prob_Todos = ((0.4*0.1) + (0.05*0.95)+(0.9*0.15)+(0.9*0.6)+(0.95*0.1))/((0.4*0.1) + (0.05*0.95)+(0.9*0.15)+(0.9*0.6)+(0.95*0.1))
sprintf("%0.1f%%", Prob_Todos * 100)
## [1] "100.0%"

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 tres personas seleccionadas rechacen?

Considerando que no es posible que a las personas ya seleccionadas se les vuelva a elegir se puede resolver con probabilidades sin repetición

(18/40)x(17/39)x(16/38)

prob = (18/40)*(17/39)*(16/38)
sprintf("%0.1f%%", prob * 100)
## [1] "8.3%"