Следующий код R дает мне только половину нормального распределения; что я должен изменить на код, чтобы получить вторую половину?Сгенерировать вторую половину нормального распределения, используя метод приемки-отклонения
halfnormal <- function(n){
vector <- rep(0,n)
for(i in 1:n){
uni_random <- runif(2)
y <- -log(uni_random)
while(y[2] < (y[1]-1)^2/2){
uni_random <- runif(2)
y <- -log(uni_random)
}
vector[i] <- y[1]
}
vector
}
output <- halfnormal(1000)
hist(output)
Почему вы не используете функцию rnorm? –
попробуйте 'hist (rnorm (1000))' –