populacija = read.table("populacija.txt")
View(populacija)

# attach - da mozemo da pristupamo kolonama baze navodjenjem njihovih imena
attach(populacija)
M = sum(velicine)
M
n = 90

# formiramo kumulante
kumulante = cumsum(velicine)
kumulante = c(0,kumulante)

# biramo slucajno broj 0<B<=M
# ako M1+...+Mi<B<=M1+...+M{i+1} biramo jedinku (i+1) u uzorak
# uzorak sa ponavljanjem - sprovodimo postupak n puta
uzorak = c()
while(length(uzorak)<n) {
  B = sample(0:M,1)
  for(i in 1:(length(kumulante)-1)) {
    if(kumulante[i]<B && B<=kumulante[i+1]) {
      uzorak = c(uzorak,i+1)
      break
    }
  }
}
uzorak
# broj razlicitih u uzorku
length(unique(uzorak))

# uzorak bez ponavljanja - sprovodimo postupak dok ne dobijemo n razlicitih
uzorak = c()
while (length(uzorak)<n) {
  B = sample(0:M,1)
  for(i in 1:(length(kumulante)-1)) {
    if(kumulante[i]<B && B<=kumulante[i+1] && !((i+1) %in% uzorak)) {
      uzorak = c(uzorak,i+1)
      break
    }
  }
}
uzorak
length(unique(uzorak))

