Поскольку вы работаете с последовательностью случайных чисел по очереди, вы можете разбить вектор на куски, например:
> set.seed(1)
> rnorm(10)
[1] -0.6264538 0.1836433 -0.8356286 1.5952808 0.3295078 -0.8204684
[7] 0.4874291 0.7383247 0.5757814 -0.3053884
> set.seed(1)
> rnorm(5)
[1] -0.6264538 0.1836433 -0.8356286 1.5952808 0.3295078
> rnorm(5)
[1] -0.8204684 0.4874291 0.7383247 0.5757814 -0.3053884
Итак:
ans <- 0
for (i in 1:10){
x <- rnorm(10^7)
ans <- ans + sum(x<=0.5)
}
В конце каждого циклаитерация меньшего x
должна быть удалена, так что вам потребуется только около 76 МБ памяти.
Для информации, я получил:
> ans
[1] 69142375
, который сравнивается с:
> pnorm(0.5)
[1] 0.6914625