试图在R中创建一个pi估计器

时间:2016-04-16 00:58:15

标签: r function

这是一个家庭作业问题。我只是FYI的全新 这就是问题: R确实有一个内置常量pi。在这里,我们将使用随机数来估计值 π。创建一个带有参数approx.pi()的函数N。在这个函数里面,编码 以下步骤:

  • (1)将j设为等于0.
  • (2)启动一个带有计数器i的for循环,重复N次。
  • (3)在for循环中,在-1和+1之间生成两个随机统一数字xy 使用runif()
  • (4)如果x^2 + y^2 < 1,则在j添加一个。
  • (5)结束for循环。
  • (6)返回π的估计值4×j/N

这是我的代码:

approx.pi <- function(N) {
    j <- 0
    for (i in N) {
        x <- runif(1,-1,1)
        y <- runif(1,-1,1)
        if (x^2+y^2< 1)  {
            j=j+1
        }
    }
    return(4*j/N)
}
approx.pi(N=5)

我收到了一些数字值,但他们不在pi附近有人可以帮忙吗?谢谢。

1 个答案:

答案 0 :(得分:1)

此代码仅运行1个值i = N。

for (i in N) {}

您需要更改为

for (i in 1:N){}

我尝试过编辑代码并获得输出

approx.pi <- function(N) {
    j <- 0
    for (i in 1:N) {
        x <- runif(1,-1,1)
        y <- runif(1,-1,1)
        if (x^2+y^2< 1)  {
            j=j+1
        }
    }
return(4*j/N)
}

这是我的输出。 (你使用5太小了。)

> approx.pi(5000)
[1] 3.188
> approx.pi(5000)
[1] 3.1488
> approx.pi(5000)
[1] 3.1344
> approx.pi(5000)
[1] 3.1672
> approx.pi(5000)
[1] 3.1632
> approx.pi(5000)
[1] 3.1152