# uzorkovanje iz normalne mesavine
rN_mesavina = function(n, mu, sd, eps) {
  x = c()
  pom = sample(1:2, n, replace = T, prob = c(1 - eps, eps))
  x = rnorm(n, mu[pom], sd[pom])
  return(x)
}

Tn = function(xb, x) {
  sqrt(n)*(mean(xb)-mean(x))/sqrt(sum((x - mean(x))^2)/n)
}

# racunamo 10 butstrep ocena za lambda_n
lambda_n_ocena = function(x, B, a) {
  lambda_n = rep(0, 10)
  Tn_b = matrix(0, 10, B)
  
  for (i in 1:10) {
    # butsrep ocena za lambda_n
    for (j in 1:B) {
      xb = sample(x, n, replace = T)
      Tn_b[i,j] = Tn(xb, x)
      if(Tn_b[i,j] <= a) {
        lambda_n[i] = lambda_n[i] + 1/B
      }
    }
  }
  return(lambda_n)
}

n = 50
B = 100
eps = c(0.1, 0.2)
tau = c(2, 3)

lambda_n_ocena(rN_mesavina(n, c(0, 0), c(1, tau[1]), eps[1]), B, 0)
lambda_n_ocena(rN_mesavina(n, c(0, 0), c(1, tau[2]), eps[1]), B, 0)
lambda_n_ocena(rN_mesavina(n, c(0, 0), c(1, tau[1]), eps[2]), B, 0)
lambda_n_ocena(rN_mesavina(n, c(0, 0), c(1, tau[2]), eps[2]), B, 0)

