rN_mesavina = function(n, mu, sigma, eps) {
  pom = sample(1:2, n, replace = T, prob = c(1 - eps, eps))
  x = rnorm(n, mu[pom], sigma[pom])
  return(x)
}

Tn = function(x_B, x) {
  sqrt(n) * (mean(x_B) - mean(x)) / sqrt(sum((x - mean(x))^2) / n)
}

lambda_n_ocena_nova = function(x, B, a) {
  # x je matrica koja sadrzi 10 uzoraka (smestenih po redovima)
  # razlika u odnosu na prethodni zadatak: 
  # sada se uzorak razlikuje za svako i = 1:10
  lambda_n = rep(0, 10)
  for (i in 1:10) {
    Tn_B = rep(0, B)
    for (j in 1:B) {
      x_B = sample(x[i, ], n, replace = T)
      Tn_B[j] = Tn(x_B, x[i, ])
    }
    lambda_n[i] = mean(Tn_B <= a)
  }
  return(lambda_n)
}

n = 50
B = 100

for (a in c(0, 0.5, 0.7)) {
  for (tau in c(2, 3)) {
    for (eps in c(0.1, 0.2)) {
      cat("tau:", tau, 
          ", eps:", eps, 
          ", a:", a, 
          ", lambda_n:", lambda_n_ocena_nova(replicate(10, rN_mesavina(n, c(0, 0), c(1, tau), eps)), B, a),
          "\n")
    }
  }
}
