set.seed(123)  
fallas <- rpois(150, lambda = 3)  

cat("Media:", mean(fallas), "| Desviación estándar:", sd(fallas), "\n")
## Media: 3 | Desviación estándar: 1.658818
hist(fallas, breaks = seq(-0.5, max(fallas) + 0.5, by = 1), col = "lightblue", probability = TRUE, 
     main = "Distribución de fallas diarias", xlab = "Fallas por día", ylab = "Densidad")

lines(0:max(fallas), dpois(0:max(fallas), lambda = 3), type = "b", col = "red", pch = 19)

set.seed(123)
vida_util <- rexp(1000, rate = 1/500)  
prob_mayor_700 <- mean(vida_util > 700)

cat("Probabilidad de que un componente dure más de 700 horas:", prob_mayor_700, "\n")
## Probabilidad de que un componente dure más de 700 horas: 0.255
hist(vida_util, breaks = 30, col = "lightgreen", probability = TRUE,
     main = "Distribución de vida útil (horas)", xlab = "Horas de duración", ylab = "Densidad")
curve(dexp(x, rate = 1/500), col = "blue", add = TRUE)

set.seed(123)
defectuosos <- rbinom(100, size = 50, prob = 0.05)

cat("Promedio de productos defectuosos por lote:", mean(defectuosos), "\n")
## Promedio de productos defectuosos por lote: 2.48
hist(defectuosos, breaks = 10, col = "green", probability = TRUE,
     main = "Distribución de productos defectuosos por lote", xlab = "Defectuosos", ylab = "Densidad")

set.seed(123)
demanda <- rnorm(365, mean = 100, sd = 15)
prob_supera_130 <- mean(demanda > 130)

cat("Probabilidad de que la demanda supere 130 MW:", prob_supera_130, "\n")
## Probabilidad de que la demanda supere 130 MW: 0.03013699
hist(demanda, breaks = 30, col = "yellow", probability = TRUE,
     main = "Distribución de la demanda de energía", xlab = "MW", ylab = "Densidad")
curve(dnorm(x, mean = 100, sd = 15), col = "red", add = TRUE)

# a) Generar 1000 tiempos de vida del capacitor aplicando el método de la transformada inversa
set.seed(123)
n <- 1000
u <- runif(n)
tiempos_vida <- -1000 * log(1 - u)

## b) Estimar la media y la varianza de los tiempos generados y compararlas con los valores teóricos
media_tiempos <- mean(tiempos_vida)
var_tiempos <- var(tiempos_vida)
cat("Media estimada:", media_tiempos, "\nVarianza estimada:", var_tiempos, "\n")
## Media estimada: 986.1544 
## Varianza estimada: 954966.2
## c) Graficar el histograma de los tiempos de vida simulados junto con la densidad teórica
hist(tiempos_vida, breaks = 30, probability = TRUE, col = "purple", main = "Histograma de tiempos de vida")
curve(dexp(x, rate = 1/1000), col = "white", add = TRUE)

## d) Calcular la probabilidad de que un capacitor dure menos de 940 horas usando la simulación
prob_menos_940 <- mean(tiempos_vida < 940)
cat("Probabilidad de que un capacitor dure menos de 940 horas:", prob_menos_940, "\n")
## Probabilidad de que un capacitor dure menos de 940 horas: 0.611