我正在寻找运行这个for循环,但执行需要一个不可接受的长时间(~20s).x和y是长度为2000000的预定义矢量.
for(i in 1:2000000)
{
a <- runif(1)
b <- runif(1)
sqrtf <- sqrt(-log(b,10))
x[i] <- sqrtf*cos(a)
y[i] <- sqrtf*cos(b)
}
Run Code Online (Sandbox Code Playgroud)
有什么技巧可以加快这一点吗?
编辑:修复了sqrtf
n <- 2e6
set.seed(101)
a <- runif(n)
b <- runif(n)
sqrtf <- sqrt(-log10(b))
x <- sqrtf*cos(a)
y <- sqrtf*cos(b)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |